推薦SQL Server精准時間查詢方式
USE Test /*插入或修改3條時間為以下極端情況的記錄 UPDATE dbo.UserInfo SET AddTime = '2016-8-1 00:00:00' WHERE id=2 UPDATE dbo.UserInfo SET AddTime = '2016-8-1 23:59:59.005' WHERE id=3 UPDATE dbo.UserInfo SET AddTime = '2016-8-2 00:00:00' WHERE id=4 */ --三條記錄如下 SELECT * FROM dbo.UserInfo WITH(NOLOCK) WHERE id IN (2,3,4) --BETWEEN對比的是兩側<=(小於等於)或>=(大於等於),查詢出來的結果會略顯不精准 SELECT * FROM dbo.UserInfo WITH(NOLOCK) WHERE AddTime BETWEEN '2016-8-1 00:00:00' AND '2016-8-2 00:00:00' --傳統的大小於等於的方式,在59秒005毫秒的情況下是無法被查詢出來的,就出現了數據錯誤的情況 SELECT * FROM dbo.UserInfo WITH(NOLOCK) WHERE '2016-8-1 00:00:00' <= AddTime AND AddTime <= '2016-8-1 23:59:59' --對於時間要求較高的功能還是要使用兩天之間0點的方式前面使用<=(小於等於)后面使用<(小於)第二天0點的方式 SELECT * FROM dbo.UserInfo WITH(NOLOCK) WHERE '2016-8-1 00:00:00' <= AddTime AND AddTime < '2016-8-2 00:00:00'