2012-05-11 20 views
6

Sto giocando con la modifica di una variabile datetime. Non riesco a trovare un modo per aggiornare un anno variabile datetime all'anno corrente.Aggiornamento anno in variabile datetime

Per esempio io ho

2007-12-01 00:00:00.000 

ma vorrei che per essere

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

Ho giocato con datediff, ma io non riesco a inchiodarlo.

Qualsiasi consiglio sarebbe apprezzato.

Grazie

risposta

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

SELECT @date 
+0

Grazie AdaTheDev. Spot on. – JGreasley

1

Forse qualcosa di simile:

per SQL server 2008+

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

Per 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

Grazie Arion, funziona bene. – JGreasley

0

Ecco un modo semplice:

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