レポートを制限して、日付Aから日付Bまでのレコードを返すようにします。これは私が行っていることです。
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
... 1月1日午前12時から3月31日午後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
...しかし、私は何か奇妙なことに気づきました。SQLServerは100分の1秒を半分に丸めます。したがって、11:59:29以降に使用すると、その4月1日のレコード(ha!エイプリルフールのレコード!grr)が取得されます。何故ですか?
- (確かにあると思います。私はこれが初めてです。あなたの助けに感謝します!)