首页 > 解决方案 > 如何结合使用 datepart 函数和 count 函数?

问题描述

我正在尝试返回从一个日期开始的一个月恰好是另一个月份的所有结果。像这样:

╔═════════════════════════════════════════╗
║ Column A date:          Column B date:  ║
╠═════════════════════════════════════════╣
║ 11/20/2019               12/1/2019      ║
║ 8/5/2019                 9/1/2019       ║
╚═════════════════════════════════════════╝

我知道如何使用 datepart 函数,但我怎么能将它与某些东西结合使用来检查它是否是 1 个月后?我会使用计数功能吗?

这就是我到目前为止所拥有的:

and datepart("m", oe.text_13_eff_date) 

标签: sql-servertsqlssms

解决方案


如果您只是在寻找月份的差异,即二月 - 一月 = 1,那么您可以使用

and    DATEPART(m,firstdate)-DATEPART(m,seconddate) = 1

实际上@Eric Brandt 评论是一个更好的答案

DATEDIFF(MONTH, firstdate, seconddate) = 1

如果你想要一个真正的月份,即 2 月 24 日 - 1 月 24 日 = 1,那么就像@Tomalak 所说的那样,它会更像。

 and   dateadd(m,1,seconddate) = firstdate

推荐阅读