根据日期计算月差 SQL Server 2008 R2

Calculate month difference based on dates SQL Server 2008 R2

我想计算两个日期之间的月差。

问题:

SELECT DATEDIFF(mm, '2015-11-01', '2015-11-30')

日期差异returns0。我想改为显示1。如果差异超过 15 天,则应四舍五入到下个月。

我尝试使用舍入和上限函数以及除以 30,但它仍然没有给我想要的结果。

此问题与 "possible duplicate" 不同的原因是因为我只查找基于开始日期和结束日期的月份计算。另外,我的开始和结束日期结构是月初和月末,而不是确切的日期。

试试这个:

SELECT DATEDIFF(mm, '2015-11-01', '2015-11-30') + CASE WHEN (DATEDIFF(mm, '2015-11-01', '2015-11-30') = 0 and DATEDIFF(dd, '2015-11-01', '2015-11-30') > 15) THEN 1 ELSE 0 END CASE

试试这个。

Select 
     DATEDIFF(mm, '2015-11-01', '2015-11-30') 
     + CASE WHEN abs(DATEPART(day, '2015-11-01') - DATEPART(day, '2015-11-30')) > 15 THEN 1 ELSE 0 END