在datetime变量中更新年份

时间:2012-05-11 11:20:52

标签: sql-server datetime datediff

我正在玩操纵datetime变量。我似乎找不到将datetime变量年更新到当年的方法。

例如我有

2007-12-01 00:00:00.000

但我希望那是

2012-12-01 00:00:00.000    (The current year were in)

我一直在玩datediff,但我似乎无法指出它。

任何建议都将受到赞赏。

谢谢

3 个答案:

答案 0 :(得分:9)

DECLARE @date datetime = '2007-01-09T12:34:56'
SELECT @date = DATEADD(yyyy, DATEDIFF(yyyy, @date, GETDATE()), @date)

SELECT @date

答案 1 :(得分:1)

也许是这样的:

对于sql server 2008 +

DECLARE @date DATETIME='2007-12-01 00:00:00.000'
SET @date=DATEADD(year,DATEDIFF(year,@date,GETDATE()),@date)

对于sql server 2005

DECLARE @date DATETIME
SET @date='2007-12-01 00:00:00.000'
SET @date=DATEADD(year,DATEDIFF(year,@date,GETDATE()),@date)

答案 2 :(得分:0)

这是一个简单的方法:

select @yourDate = dateadd(year, datepart(year, getdate()) - datepart(year, @yourDate), @yourDate)