0
我想查詢多個日期範圍的數據。這是我寫的:MSSQL查詢幾個日期範圍
Select Datetime, Round(value,3) As v
From myTable
Where charfield = 'WHATEVER'
And ((Datetime between '2014-02-01 00:00' AND '2014-02-01 23:59')
OR (Datetime between '2014-02-02 00:00' AND '2014-02-02 23:59')
OR (Datetime between '2014-02-03 00:00' AND '2014-02-03 23:59')
OR (Datetime between '2014-02-04 00:00' AND '2014-02-04 23:59'))
但我只能從最後一個範圍('2014-02-04'
)的數據,我不知道爲什麼。我確定在其他時間段也有數據。
請忽略區間連續的事實,這只是一個例子。在實際代碼中,間隔範圍完全是任意的。
正如一個側面說明,如果你關心的時候,它通常是更明智的使用半開區間(包括起點,獨家終點),並放棄使用'BETWEEN' - 即'DateTime> ='20140201'和DateTime <'20140202''是你的第一個範圍。 –
[它似乎對我很好](http://sqlfiddle.com/#!3/16ac0/1) - 你確定那裏有數據嗎?您的查詢中是否有更多內容沒有將其簡化? – GarethD
你是以字符串還是日期時間類型變量傳遞日期?您可以在varchar中隱式投射時發生一些錯誤 – jean