SQL Server DATEPART年份和月份

时间:2015-06-19 16:06:11

标签: sql sql-server sql-server-2008

我在SQL Server 2012中有一个电话,我需要在Server 2005和2008上工作。

FORMAT(Date, 'yyyyMM') = 201501是我目前正在使用的,需要使用DATEPART旧版本的SQL Server,但无法轻易找到一种方法。

非常感谢任何帮助。

5 个答案:

答案 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())