2013-03-03 89 views
0
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+0,0)) 

輸出結果給我當前日期的上個月的最後日期。 如何從DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+0,0))提取Year?如何在SQL Server 2008中提取YEAR?

Select DATEPART(YYYY,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+0,0))) 

上述Select語句是否會提取年?

+0

請問有沒有相應的SQL Server中選擇年(的DateField)? – DiMono 2013-03-03 19:32:13

回答

0

回答你的問題是「是的,你可以使用datepart(yyyy, ....)。事實證明,‘YYYY’是在此背景下,較爲常用的「年」的代名詞。

然而,大多數人只是將使用year(<whatever>)用於此目的。

+0

感謝您的回答。在第一種情況下,「yyyy」表現爲字符串嗎?因爲,我需要使用該年進行數字計算? – OceanView 2013-03-03 21:24:01

+0

'datepart'中使用的表達式是SQL Server中的語言元素。所以,它不是一個字符串;你不會把它放在單引號中:'datepart(year,getdate())'或'datepart(yyyy,getdate())'。 – 2013-03-03 21:26:02

+0

那麼我可以使用那一年作爲一個整數? – OceanView 2013-03-03 21:38:47

0

SQL Server可以從DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+0,0)) 函數YEAR(),所以提取今年剛剛做SELECT YEAR(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+0,0))) http://sqlfiddle.com/#!3/1fa93/5208

+0

感謝您的回答。在這種情況下,今年是否表現爲一個數字?因爲,我需要使用該年進行數字計算? – OceanView 2013-03-03 21:24:46