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

时间:2017-05-01 18:49:03

标签: sql-server-2008-r2 datediff

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

问题:

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

日期差异返回0.我想显示1。如果差异超过15天,则应该到下个月。

我尝试使用圆形和天花板功能并除以30,但它仍然没有给我想要的结果。

这个问题不同于“可能重复”的原因是因为我只根据开始日期和结束日期查找月份计算。此外,我的开始日期和结束日期结构是月初和月末而不是确切日期。

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

试试这个。

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