2016-03-29 7 views
1

Ich verwendeTeradata finden letztes 1 Jahr aktuelles Datum Ausgabe mit

CURRENT_DATE- INTERVAL '13' MONTH 

13 Monate Daten zu bekommen. Sie sehen, dass dies einen ungültigen Datumsfehler zurückgibt. Da das aktuelle Datum (29. März) - 13 Monate ist ein ungültiges Datum (29. Februar 2015).

Haben wir nicht eine Inbuild-Funktion, um dieses Problem zu beheben, anstatt eine Art benutzerdefinierte Logik zu schreiben?

Antwort

3

Schaltjahre sind die Hölle für INTERVAL Mathe. Statt ADD_MONTHS() verwenden:

ADD_MONTHS(CURRENT_DATE, -13) 

INTERVAL obwohl zum Subtrahieren kleinere Zeiteinheiten groß ist.