我在SQL Server 2008 R2數據庫中有一個名爲'Messages'的表。該表中的一列是TimeSent
的time(7)
類型。在SQL Server 2008 R2中測試Time(7)數據類型值是00:00:00.0000000
對於表格中的幾行,此列值有時爲00:00:00.0000000
,如以下屏幕截圖所示。
我的問題是:我將如何編寫一個查詢來獲取所有行中有零時間(非空)的列TimeSent
?下面的查詢我嘗試不起作用。
SELECT * FROM Messages WHERE TimeSent = 0
更新1:
雖然從marc_s答案是公認的答案,我也發現2008 R2的零時間在SQL Server檢查,如下面的代碼的另一種方式。
DECLARE @zeroTime AS time(7);
SET @zeroTime = CAST('20140101' AS time(7));
SELECT * FROM Messages WHERE TimeSent = @zeroTime;
是的。我還發現,只要至少指定了兩個時間部分,0串就不需要精確匹配。因此「Where TimeSent = '00:00'」也適用,「Where TimeSent ='0:0'」但「TimeSent ='0'」不起作用。謝謝。 – Sunil