测试SQL Server 2008 R2中的Time(7)数据类型值是否为00:00:00.0000000

时间:2014-07-14 18:09:07

标签: sql sql-server-2008-r2

我在SQL Server 2008 R2数据库中有一个名为“Messages”的表。此表中的一列是TimeSent time(7)类型。

有时,此列值为00:00:00.0000000表中的几行,如下面的屏幕截图所示。

我的问题是:如何编写查询以获取列TimeSent中所有行的零时间(非空)?我试过的下面的查询不起作用。

SELECT * FROM Messages WHERE TimeSent = 0

TimeSent value of 00:00:00.0000000

更新1:

虽然marc_s的答案是公认的答案,但我还发现了另一种在SQL Server 2008 R2中检查零时间的方法,如下面的代码所示。

DECLARE @zeroTime AS time(7);
SET @zeroTime = CAST('20140101' AS time(7));
SELECT * FROM Messages WHERE TimeSent = @zeroTime;

2 个答案:

答案 0 :(得分:1)

SELECT *  from Messages
WHERE timesent = TIMEFROMPARTS  (0,0,0,0,0)

答案 1 :(得分:1)

怎么样

SELECT * 
FROM Messages 
WHERE TimeSent = '00:00:00.0000000'

这有用吗?