心得/经验/绝招
SQL中获取两日期之间的值
2013-07-23 16:46:57
方法一、用 BETWEEN 操作符        操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 但,不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。         SELECT * FROM [员工表]         WHERE [登记日期]BETWEEN  '2011-11-01‘  AND '2011-11-23’       上述SQL语句在某些数据库会列出介于 "2011-11-01" 和 "2011-11-23" 之间的人,但不包括 "2011-11-01" 和 "2011-11-23"这两天登记的人员 ;某些数据库会列出介于 "2011-11-01" 和 "2011-11-23" 之间并包括 "2011-11-01" 和 "2011-11-23"这两天登记的人员;而另一些数据库会列出介于 "2011-11-01" 和 "2011-11-23" 之间的人,包括 "2011-11-01"这一天登记的人员 、但不包括 "2011-11-23"这一天登记的人员 。        如使用此方法,检查你的数据库是如何处理 BETWEEN....AND 操作符的,是非常重要的事情! 方法二、利用SQL提供的日期转换函数          SELECT * FROM [员工表]          WHERE  CONVERT(varchar(10), CAST([登记日期] AS datetime), 120) >='2011-11-01'  AND                        CONVERT(varchar(10), CAST([登记日期] AS datetime), 120) <='2011-11-23'        上述SQL语句,能准确返回:2011-11-01 至 2011-11-23 之间登记的所有人员(包括:包括 "2011-11-01" 和 "2011-11-23"这两天登记的人员)。        注意:CONVERT(varchar(10), CAST([登记日期] AS datetime), 120) 返回的字符串是: yyyy-mm-dd 的形式。                 因此,使用此方法比较日期前,记得把日期条件的值变为:yyyy-mm-dd 的形式,才能得到准确的数据。  总结:个人认为方法二较好。