会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 编程心得绝招 > 经验泛谈 > 正文

SQL中获取两日期之间的值

时间:2013-07-23 16:47 来源:office中国 作者:鱼儿游游 阅读:

方法一、用 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 的形式,才能得到准确的数据。 

总结:个人认为方法二较好。

(责任编辑:admin)

顶一下
(3)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: