between and 双闭合区间

假设查询一段时间是2012-03-05的,我以前用如下语句:

where time between '2012-03-05 00:00:00' and '2012-03-05 23:59:59'
 

但后来总是发生错误。

仔细研究后发现,这句话不仅仅将3月5日当天的数据,还将time='2012-03-06 00:00:00'的数据带出来了。

也就是说,sql server2008认为2012-03-06 00:00:00和2012-03-05 23:59:59是等价的。

擦!

所以我后来全部改成了如下语句:

time>='2012-03-05 00:00:00' and time<'2012-03-05 23:59:59'
 

即左闭右开区间。

而between and 是双闭区间。危险啊!

猜你喜欢

转载自wandejun1012.iteye.com/blog/1440132