我正在尝试获取开始时间和结束时间之间的总分钟数。这些数据在同一个表、同一列中找到,我设置了一个变量来返回我需要的值。
到目前为止,一切都很顺利。现在,当我对变量使用DATEDIFF时,问题来了,因为它返回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
返回CCD_ 6。