我在SQL Server 2012中有一个电话,我需要在Server 2005和2008上工作。
FORMAT(Date, 'yyyyMM') = 201501
是我目前正在使用的,需要使用DATEPART旧版本的SQL Server,但无法轻易找到一种方法。
非常感谢任何帮助。
答案 0 :(得分:3)
早期版本的SQL Server没有FORMAT
,所以你需要像
YEAR(Date) = 2015 AND MONTH(Date) = 1
或类似的东西检查两个条件
答案 1 :(得分:1)
应该与SQL Server 2005和2008一起使用
DECLARE @Date DATETIME = GETDATE();
SELECT CAST(YEAR(@Date) AS VARCHAR(4))
+ RIGHT('00' + CAST(MONTH(@Date) AS VARCHAR(2)),2)
RESULT: 201606
如果您打算在where子句中使用它,您可以执行类似......
的操作WHERE YEAR(DateColumn) = 2016
AND MONTH(DateColumn) = 6
答案 2 :(得分:1)
如果您希望使用DATEPART,这应该有效:
CAST(DATEPART(YEAR, CAST('2015-01-05' AS DATETIME)) AS VARCHAR(4))
+RIGHT('00' + CAST(DATEPART(MM, CAST('2015-01-05' AS DATETIME)) AS VARCHAR(2)), 2)
或者,您可以像其他帖子一样使用YEAR或MONTH。
答案 3 :(得分:1)
SELECT CONVERT(NVARCHAR(6),GETDATE(),112)
答案 4 :(得分:0)
这是最简单的方法。
SELECT YEAR(GETDATE())*100 + MONTH(GETDATE())