2016-03-30 3 views
1

Je voudrais récupérer une date moins 1 an, mais sans notation de tempsSélectionnez une date sans temps (SQL Server (+)

La requête suivante

SELECT DATEADD(year, -1, GETDATE()) 

Sortie:.

2015-03-30 10:48:04.220 

Ce que je veux est 2015-03-30 00:00:00:000

similaires à:

(DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)) 

qui se traduit par: 2016-03-30 00:00:00.000

Quelle est la manière correcte ou plus facile de le faire?

+0

pourquoi ne pas utiliser CAST (champ AS DATE)? –

+0

"Ce que je veux, c'est' 2015-03-30 00: 00: 00: 000' ". Étrange, mais il semble que cela inclut une représentation assez précise de minuit. Voulez-vous l'heure du jour ou juste un ['date'] (https://msdn.microsoft.com/en-us/library/bb630352.aspx)? – HABO

Répondre

1

Sur SQL Server 2008 et supérieur, vous devez convertir à ce jour:

SELECT CONVERT(date, (DATEADD(year, -1, GETDATE()))) 

Sur les anciennes versions, vous pouvez effectuer les opérations suivantes:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(year, -1, GETDATE())))