6

我正在玩弄一个datetime变量。我似乎找不到将datetime可变年份更新为当前年份的方法。

例如我有

2007-12-01 00:00:00.000

但我希望这样

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

我一直在玩datediff,但我似乎无法确定它。

任何意见,将不胜感激。

谢谢

4

3 回答 3

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

SELECT @date
于 2012-05-11T11:25:36.247 回答
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)
于 2012-05-11T11:26:30.750 回答
0

这是一个简单的方法:

select @yourDate = dateadd(year, datepart(year, getdate()) - datepart(year, @yourDate), @yourDate)
于 2012-05-11T11:29:56.777 回答