加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL中按日期过滤

发布时间:2020-12-12 06:47:07 所属栏目:MsSql教程 来源:网络整理
导读:我的表中有一列用于日期(DateTime),我正在尝试创建一个WHERE子句,表示在2012年12月11日至2012年12月12日期间发布的日期 日期列的样本值= 2012-05-24 00:38:40.260 我想说明在MM-DD-YYYY和MM-DD-YYYY之间的日期. 我试过了 WHERE dates BETWEEN ((convert(nva
我的表中有一列用于日期(DateTime),我正在尝试创建一个WHERE子句,表示在2012年12月11日至2012年12月12日期间发布的日期

日期列的样本值= 2012-05-24 00:38:40.260

我想说明在MM-DD-YYYY和MM-DD-YYYY之间的日期.

我试过了

WHERE dates BETWEEN ((convert(nvarchar(10),dates,110) = '2012-12-12') AND (convert(nvarchar(10),110) = '2012-12-12'))

但似乎没有用. “语法不正确=”

请帮忙

编辑:

感谢各种选项和描述人.得到了@ RichardTheKiwi的选择.

解决方法

如果您的日期列不包含时间信息,您可以逃脱:
WHERE dates BETWEEN '20121211' and '20121213'

但是,鉴于您的日期列实际上是日期时间,您需要这个

WHERE dates >= '20121211'
  AND dates < '20121214'  -- i.e. 00:00 of the next day

SQL Server 2008以后保留SARGability(使用索引以获得良好性能的能力)的另一个选项是:

WHERE CAST(dates as date) BETWEEN '20121211' and '20121213'

注意:始终将ISO-8601格式YYYYMMDD与SQL Server一起使用,以获得明确的日期文字.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读