between and 相关

语法及参数如:http://msdn.microsoft.com/zh-cn/library/ms174081%28SQL.90%29.aspx

关于日期和时间的函数见:http://msdn.microsoft.com/zh-cn/library/ms186724.aspx

不再解释,在这里说的是between ... and 和>、<的比较。

早上来就被扔来一个提取数据的需求,让查出去年一年的退货单。不过那人还好知道一下数据量大,让分月查询。

他写的是:

Time between '2011-01-01' and '2011-01-31'


但是表里面的Time 类型是datetime类型的。

在SQL SERVER 中datetime类型,这样的类型结果通常格式为:2012-02-28 00:00:00.000

那么如果只是写了日期,后面的时,分,秒忽略查询出来的结果将会是

Time between '2011-01-01 00:00:00.000 ' and '2011-01-31 00:00:00.000'



而我们想要的结果则是在2011-01-01 00:00:00.000 ' 和 '2011-01-31 23:59:59.599' 的,相差的数据是一天。也就是会少了最后一天的数据。

如果不想用between ... and 其实是可以用

Time >'2011-01-01 00:00:00.000 '  and Time <= '2011-01-31 23:59:59.599'


  或者

Time >'2011-01-01'  and Time < '2011-02-01'



这样也是可以的。

扩展阅读:http://topic.csdn.net/u/20110711/09/bad93292-ede9-4eaf-8f4c-9b2efe4a256e.html

原文地址:https://www.cnblogs.com/zerocc/p/2371131.html