2010-02-02 43 views
3

試圖建構一個日期:在TSQL構建日期

CAST('9/1/' + YEAR(GETDATE()) AS Datetime) AS test2 

但它不工作?

想獲得像「9/1/2010」?

回答

4

你不能用數字將字符串'9/1'YEAR(GETDATE()),所以嘗試:

選擇CAST( '9/1 /' + CONVERT(VARCHAR(4),YEAR(GETDATE())) AS DATETIME)AS test2的

+0

OOOOH,有道理... – R0b0tn1k 2010-02-02 20:21:59

0

您可以使用一個字符串格式YYYYMMDD。

1
SELECT 
CAST('9/1/' + CAST(YEAR(GETDATE()) AS VARCHAR) AS Datetime) AS test2 

您需要將YEAR(整數)轉換爲VARCHAR,然後才能附加它。

1

試試這個:

Select DateAdd(month, 
      dateDiff(month, 0, getdate()) + 9 - MONTH(getdate()), 
      0) 
+0

這個工作,它使用快速的內置SQL(服務器?)功能,而不是字符串連接。 – 2011-04-24 19:45:18