(+)

2016-03-30 18 views
1

Ich möchte ein Datum minus 1 Jahr zurückzuholen, aber ohne Zeitangabe(+)

Die folgende Abfrage

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

Ausgang:.

2015-03-30 10:48:04.220 

Was ich will, ist 2015-03-30 00:00:00:000

Ähnlich:

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

was zur Folge hat: 2016-03-30 00:00:00.000

Was ist der korrekte oder einfachste Weg, dies zu tun?

+0

warum CAST nicht verwenden (Feld AS DATE) –

+0

"Was ich will ist' 2015-03-30 00: 00: 00: 000' ". Seltsam, aber es sieht so aus, als ob es eine ziemlich genaue Darstellung von Mitternacht enthält. Möchten Sie die Uhrzeit oder nur ein [Datum] (https://msdn.microsoft.com/en-us/library/bb630352.aspx)? – HABO

Antwort

1

auf SQL Server 2008 und höher, sollten Sie auf dem neuesten Stand konvertieren:

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

Auf älteren Versionen können Sie folgendes tun:

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