2016-02-24 142 views
0

有什麼方法可以計算兩個日期之間的月數?SQL Server - 計算兩個日期之間的月差

我有這個

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

但是這給我帶來了1事實上,我希望它是2,我應該總結1的結果,或者還有另外一個功能,專門爲這個?

讓我解釋我需要什麼,我有幾個月和幾年,我不在乎那一天,因爲總是01,所以每個日期都用yyyy/mm/01表示,在我的情況下,我確定了一個值,這個值出現在'2015-11-01'和'2015-12-01',這意味着我有兩個月的時間,現在我需要計算月數,所以用datediff返回1,這是不正確的我的案件。

+1

http://stackoverflow.com/questions/1106945/calculating-number-of-full-months -between-dates-in-sql – mohan111

+2

你想讓它成爲2的邏輯是什麼?如果他們在同一個月,你想要「差異」是1嗎?如果他們在同一天?如果是這樣,那麼是的,總是加1到DATEDIFF,你會得到你想要的結果。 –

+0

如果您的日期從第一天開始,只需在結果中添加+1或CEIL爲31以上的天數即可快速入侵 – Mihai

回答

1

如果我理解正確你的問題,這將是我的建議:

只需添加1到您的DATEDIFF輸出。

SELECT DATEDIFF(mm, '2015-11-01', '2015-12-01') +1 
1

你可以做到這一點,如下

SELECT 12 * (YEAR(Date1) 
       - YEAR(Date2)) 
     + (MONTH(Date1) 
      - MONTH(Date2)) AS months 
FROM table 

OR

SELECT TIMESTAMPDIFF(MONTH, '2015-11-01', '2015-12-01') 
相關問題