2016-11-15 6 views
-1

Ich versuche zu vergleichen, wenn meine Variable datetime NULL ist, aber es funktioniert nicht, ich bin neu machen Vergleich in SQL, also könnte mir jemand sagte, wie ist der gute Weg. Dies ist mein Code:Wie kann ich feststellen, ob meine Variable datime null ist?

declare @FechaInicial datetime 
set @FechaInicial = (select FecharIncialDescarga 
        from Contenedores where [email protected]) 

if(@FechaInicial = NULL) --- 
    begin 
    end 
+4

versuchen, wenn @FechaInicial NULL –

+2

Mögliche Duplikat [SQL ist null und = null] (http://stackoverflow.com/questions/9581745/sql-is-null-and-null) – Blorgbeard

+0

So ist sagen Sie, dass Sie gegoogelt dafür aber man konnte nichts finden, also war die beste Option hier zu fragen? – Andrew

Antwort

1

Sie können dies mit if(@FechaInicial IS NULL) wie folgt versuchen.

declare @FechaInicial datetime 
set @FechaInicial = (select FecharIncialDescarga from Contenedores 
        where [email protected]) 

if(@FechaInicial IS NULL) --- 
    begin 
    end 

Wenn Sie NULL und auch empty zu überprüfen, können Sie if(ISNULL(@FechaInicial, '') = '') wie unten versuchen.

declare @FechaInicial datetime 
set @FechaInicial = (select FecharIncialDescarga 
        from Contenedores where [email protected]) 

if(ISNULL(@FechaInicial, '') = '') --- 
    begin 
    end 

Auch ein recommendation anstelle eines SET oben verwendet, können Sie es Refactoring, wie unten mit einem SELECT

SELECT @FechaInicial = FecharIncialDescarga 
FROM Contenedores WHERE Id_Contenedor = @IdContenedor 
3

Die direkte Antwort auf Ihre Frage ist is null:

if (@FechaInicial IS NULL) 

Dies liegt daran, dass fast jeder Vergleich mit NULLNULL zurückgibt, und NULL ist t als falsch bezeichnet.

Ich möchte jedoch darauf hinweisen, dass Sie wirklich diese Logik beabsichtigen könnte:

if (not exists (select 1 from Contenedores where Id_Contenedor = @IdContenedor)) 
begin 
    . . . 
end; 

Zwar gibt es nichts falsch mit dem Wert einer Variablen zugewiesen und Überprüfung für NULL ist, wird dies deutlicher und kann mehr sein effizient.

Verwandte Themen