sql之SQL 的月差

arxive 阅读:55 2024-06-20 12:54:19 评论:0

考虑一个日期时间字段Fld1

如何使用 SQL 查询检查该值是否早于 3 个月前?

请您参考如下方法:

从你的其他问题来看,它看起来像 SQL Server。

已经给出的 2 个 SQL Server 答案不是 SARGable (link) ;他们不能使用索引。

WHERE datecolumn < DATEADD(month, -3, GETDATE()) 

构造一个 3 个月前的日期并对其进行测试;这将能够使用索引。这句话适用于任何 DBMS。

如果您在整个日历月之后,例如

  • 当前日期 = 2011 年 2 月 24 日
  • 3 个月前 = 2010 年 11 月 - 2010 年(忽略月份中的某天)
  • 必填 = 2010 年 11 月及之前的任何日期

WHERE datecolumn <= DATEADD(month, datediff(month, 0, getdate()) -2, 0) 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号