两个日期之间的Sql Server where子句不给出预期的输出

Sat*_*ngh 4 datetime sql-server-2008

这是我使用'between'运算符获取日期的简单查询.

create table dummy (mydate datetime);
 insert into dummy values('2013-03-20 10:30:00.000');
 insert into dummy values('2013-03-21 10:30:00.000');
 insert into dummy values('2013-03-22 10:30:00.000');
 insert into dummy values('2013-03-23 10:30:00.000');
 insert into dummy values('2013-03-24 10:30:00.000');
 insert into dummy values('2013-03-25 10:30:00.000');
 insert into dummy values('2013-03-26 10:30:00.000');
 insert into dummy values('2013-03-27 10:30:00.000');
 insert into dummy values('2013-03-28 10:30:00.000');
 insert into dummy values('2013-03-29 10:30:00.000');
 insert into dummy values('2013-03-30 10:30:00.000');
Run Code Online (Sandbox Code Playgroud)

我使用的qiuery是: select * from dummy where mydate between ('3/01/2013 12:00:00 AM') and ('3/30/2013 12:00:00 AM')

在这里 2013-03-30 10:30:00.000,也应该退货.

SQL FIDDLE

Mik*_*son 15

更改日期时间格式的where子句中,检查值与>=<代替.

select * 
from dummy 
where mydate >= '20130301' and
      mydate < '20130401'
Run Code Online (Sandbox Code Playgroud)

  • @Satindersingh是的,有很大的不同.`between`是包容性的.[BETWEEN和魔鬼有什么共同之处?](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common的.aspx) (3认同)