2012-05-11 1 views
6

Я играю с манипуляцией переменной datetime. Кажется, я не могу найти способ обновить переменный год 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

Thank you 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

Спасибо, Арион, работает хорошо. – JGreasley

0

Вот простой способ:

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

 Смежные вопросы

  • Нет связанных вопросов^_^