0

次のような列を持つMSSQL2008DBテーブルがあります。

Date

2012-07-02 18:34:44.487
2012-07-02 18:34:44.480
2012-07-02 18:34:44.193
2012-07-02 18:34:44.193

私がする時

SELECT *
FROM table1
WHERE Date BETWEEN '2012-07-02' AND '2012-07-02'

何も得られません。

上記のすべての結果が2つの日付の間にある場合、それらを取得するにはどうすればよいですか。

4

3 に答える 3

5

一方通行

   Select * from table1 where Date >= '2012-07-02' and Date < '2012-07-03'

between では 3 日の午前 0 時の値も取得されるため、これは between よりも安全です。

于 2012-07-02T17:49:59.300 に答える
0

これを試して :

Select * from table1 where CONVERT(Date,Date)='2012-07-02'
于 2012-07-02T17:54:47.743 に答える
0

使用するdateadd

Select * 
from table1 
where Date between '2012-07-02' and dateadd(d,1,'2012-07-02')

MSDN ドキュメントhttp://msdn.microsoft.com/en-us/library/ms186819.aspx

大まかに言えば、SQL がこの例のような文字列の日付を指定された日付の午前 0 時として扱うためです。だからあなたが本当に求めているのはbetween midnight of 2012-07-02 and midnight of 2012-07-03

于 2012-07-02T17:50:49.487 に答える