【发布时间】:2016-02-24 22:21:27
【问题描述】:
有没有办法计算两个日期之间的月数?
我有这个
SELECT DATEDIFF(mm, '2015-11-01', '2015-12-01')
但是这给我带来了 1,实际上我希望它是 2,我应该将结果与 1 相加,还是有另一个专门用于此的函数?
让我解释一下我需要什么,我有几个月和几年,我不在乎这一天,因为总是 01,所以每个日期都用 yyyy/mm/01 表示,在我的例子中,我确定了一个值,这个值出现在“2015-11-01”和“2015-12-01”上,这意味着我在两个月内拥有它,现在我需要计算月数,所以使用 datediff 返回 1 这在我的情况下是不正确的.
【问题讨论】:
-
您希望它为 2 背后的逻辑是什么?如果他们在同一个月,您希望“差异”为 1 吗?如果他们在同一天?如果是这样,那么是的,总是将 1 加到 DATEDIFF,你会得到你想要的结果。
-
如果您的日期总是从第一天开始,只需在结果中添加 +1 或 CEIL 超过 31 天的天数即可快速破解
-
@TabAlleman 我认为在该日期范围内有 2 个不同的月份。所以,是的,应该是
DATEDIFF + 1 -
你为什么认为这是 2?您可能需要更准确地定义您认为的一个月。
标签: sql-server