我正在尝试比较我的变量日期时间是否为NULL,但它不起作用,我是新的在SQL中进行比较,所以有人会说我的好方法。这是我的代码:
declare @FechaInicial datetime
set @FechaInicial = (select FecharIncialDescarga
from Contenedores where Id_Contenedor=@IdContenedor)
if(@FechaInicial = NULL) ---
begin
end
答案 0 :(得分:3)
您问题的直接答案是is null
:
if (@FechaInicial IS NULL)
这是因为几乎所有与NULL
的比较都会返回NULL
,而NULL
会被视为错误。
但是,我想指出你可能真的想要这个逻辑:
if (not exists (select 1 from Contenedores where Id_Contenedor = @IdContenedor))
begin
. . .
end;
虽然将值赋给变量并检查NULL
没有任何问题,但这更清楚,效率更高。
答案 1 :(得分:1)
您可以使用if(@FechaInicial IS NULL)
尝试此操作,如下所示。
declare @FechaInicial datetime
set @FechaInicial = (select FecharIncialDescarga from Contenedores
where Id_Contenedor=@IdContenedor)
if(@FechaInicial IS NULL) ---
begin
end
如果您想查看NULL
和empty
,可以尝试if(ISNULL(@FechaInicial, '') = '')
,如下所示。
declare @FechaInicial datetime
set @FechaInicial = (select FecharIncialDescarga
from Contenedores where Id_Contenedor=@IdContenedor)
if(ISNULL(@FechaInicial, '') = '') ---
begin
end
同样是recommendation
,而不是上面使用的SET
,您可以使用SELECT
SELECT @FechaInicial = FecharIncialDescarga
FROM Contenedores WHERE Id_Contenedor = @IdContenedor