2010-02-02 44 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