我想限制的報告通過日期B.從日期返回記錄的正確性這是我一直在做的事情:限制日期範圍與MS SQL/SQL Server 2005的
declare @startDate varchar(20)
declare @endDate varchar(20)
set @startDate = '01/01/2008'
set @endDate = '04/01/2008'
-- test what are the start and end dates
select min(date),max(date) from view_Inspections
where date between @startDate and @endDate
...我被告知從3月31日的凌晨1點到11點59分回覆了記錄(當沒有時間時,默認是午夜)。但是我注意到了一個差異,就是如果一個記錄的時間是00:00:00,那麼它將成爲這個集合的一部分。
是否有這樣做所以它會返回正是我想要的日期範圍的更精確的方式*
我試着使用時間:
declare @startDate varchar(20)
declare @endDate varchar(20)
set @startDate = '01/01/2008 00:00:00'
set @endDate = '04/01/2008 11:59:59'
-- test what are the start and end dates
select min(date),max(date) from view_Inspections
where date between @startDate and @endDate
...但我注意到了一些靠不住的: SQL Server將把hundreth-second增加一半。因此,如果我晚於11:59:29使用任何時間,我會得到4月1日的紀錄(ha!April Fool's record!grr)。這是爲什麼?
- (我覺得肯定有我新,在此感謝您的幫助。!)
謝謝!這有很大幫助。 @ G-Mastros:這是SmallDateTime - 感謝您解釋這種數據類型的行爲! – aesdanae 2009-01-05 21:19:17