0

我有一个 MS SQL 2008 DB 表,其列如下:

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'

我什么都得不到。

当它们落在两个日期之间时,我该怎么做才能获得上述所有结果。

4

3 回答 3

5

单程

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

这也比 between 更安全,因为使用 between 您还将获得第 3 天的午夜值,请参阅SQL Server 中的 Between 如何处理日期?

于 2012-07-02T17:49:59.300 回答
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 将字符串日期(如本例)视为给定日期的午夜。所以你真正要问的是between midnight of 2012-07-02 and midnight of 2012-07-03

于 2012-07-02T17:50:49.487 回答
0

尝试这个 :

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