2012-05-11 40 views
6

我正在玩弄操作datetime變量。我似乎無法找到更新可變年份到當年的datetime的方法。更新日期時間變量的年份

比如我有

2007-12-01 00:00:00.000 

但我想這是

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

我一直在玩datediff,但我似乎無法打釘。

任何意見,將不勝感激。

感謝

回答

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

SELECT @date 
+0

謝謝你AdaTheDev。發現。 – JGreasley

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) 
+0

謝謝Arion,工作很好。 – JGreasley

0

這裏有一個簡單的方法:

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