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