SQL 服务器 returns 上的 DATEDIFF 函数在我使用变量时为空值
DATEDIFF function on SQL server returns a null value when I use variables
我正在尝试获取开始时间和结束时间之间的总分钟数。此数据位于同一 table、同一列中,我已将变量设置为 return 我需要的值。
到目前为止,一切正常。现在,当我将 DATEDIFF 与变量一起使用时,问题就来了 returns NULL
:
DECLARE @hol datetime
SET @hol = (
SELECT fecha_Registro
FROM Registro
WHERE id_Registro = 4
AND id_Tipo_Registro = 2
);
SELECT @hol as varText
DECLARE @bye DATETIME
SET @hol = (
SELECT fecha_Registro
FROM Registro
WHERE id_Registro = 3
AND id_Tipo_Registro = 1
);
SELECT @hol as varText2
SELECT DATEDIFF(MI, @bye, @hol) as total_minutos
如您所见,变量具有正确的值,因此,我不明白为什么它会返回 null。当我使用实际日期执行此操作时,它工作正常。
您声明了 @bye
变量,该变量未在任何地方赋值。所以它得到 NULL
默认值,所以 DATEDIFF(MI, @bye, @hol)
也评估为 null
。
还有一种可能是查询
select fecha_Registro
from Registro
where id_Registro = 3
and id_Tipo_Registro = 1
returns NULL
.
我正在尝试获取开始时间和结束时间之间的总分钟数。此数据位于同一 table、同一列中,我已将变量设置为 return 我需要的值。
到目前为止,一切正常。现在,当我将 DATEDIFF 与变量一起使用时,问题就来了 returns NULL
:
DECLARE @hol datetime
SET @hol = (
SELECT fecha_Registro
FROM Registro
WHERE id_Registro = 4
AND id_Tipo_Registro = 2
);
SELECT @hol as varText
DECLARE @bye DATETIME
SET @hol = (
SELECT fecha_Registro
FROM Registro
WHERE id_Registro = 3
AND id_Tipo_Registro = 1
);
SELECT @hol as varText2
SELECT DATEDIFF(MI, @bye, @hol) as total_minutos
如您所见,变量具有正确的值,因此,我不明白为什么它会返回 null。当我使用实际日期执行此操作时,它工作正常。
您声明了 @bye
变量,该变量未在任何地方赋值。所以它得到 NULL
默认值,所以 DATEDIFF(MI, @bye, @hol)
也评估为 null
。
还有一种可能是查询
select fecha_Registro
from Registro
where id_Registro = 3
and id_Tipo_Registro = 1
returns NULL
.