- Kategorien:
ADD_MONTHS¶
Addiert oder subtrahiert eine bestimmte Anzahl von Monaten zu bzw. von einem Datum oder Zeitstempel, wobei die Monatsendinformationen erhalten bleiben.
Syntax¶
ADD_MONTHS( <date_or_timestamp_expr> , <num_months_expr> )
Argumente¶
Benötigt:
date_or_timestamp_expr
Dies ist der Datums- oder Zeitstempelausdruck, zu dem Sie eine bestimmte Anzahl von Monaten hinzufügen.
num_months_expr
Dies ist die Anzahl der Monate, die Sie hinzufügen. Dies sollte eine ganze Zahl sein. Sie kann positiv oder negativ sein. Wenn der Wert ein nicht ganzzahliger numerischer Wert ist (z. B. FLOAT), wird der Wert auf die nächste Ganzzahl gerundet.
Rückgabewerte¶
Der Datentyp des zurückgegebenen Wertes entspricht dem Datentyp des ersten Parameters. Wenn die Eingabe beispielsweise ein DATE
-Wert ist, ist die Ausgabe ebenfalls ein DATE
-Wert. Wenn die Eingabe ein TIMESTAMP_NTZ
-Wert ist, dann ist die Ausgabe ebenfalls ein TIMESTAMP_NTZ
-Wert.
Nutzungshinweise¶
ADD_MONTHS gibt etwas andere Ergebnisse zurück als DATEADD, das mit einer
MONTH
-Komponente verwendet wird:Sowohl bei ADD_MONTHS als auch bei DATEADD gilt: Wenn der resultierende Monat weniger Tage hat als der ursprüngliche Tag, ist der resultierende Tag des Monats der letzte Tag des resultierenden Monats.
Nur bei ADD_MONTHS gilt: Wenn der ursprüngliche Tag der letzte Tag des Monats ist, ist der resultierende Tag des Monats der letzte Tag des resultierenden Monats.
num_months_expr
kann eine positive oder negative ganze Zahl sein, die zum Addieren bzw. Subtrahieren von Monaten dient.
Beispiele¶
Hinzufügen von 2 Monaten zu einem Datum und Umwandeln des Datums in einen Zeitstempel ohne Zeitzone:
SELECT ADD_MONTHS('2016-05-15'::timestamp_ntz, 2) AS RESULT; +-------------------------+ | RESULT | |-------------------------| | 2016-07-15 00:00:00.000 | +-------------------------+
Demonstrieren der Erhaltung der Monatsendinformationen:
Hinzufügen eines Monats zum letzten Tag im Februar 2016 (ein Schaltjahr).
Subtrahieren eines Monats vom letzten Tag des Monats Mai 2016.
SELECT ADD_MONTHS('2016-02-29'::date, 1) AS RESULT; +------------+ | RESULT | |------------| | 2016-03-31 | +------------+SELECT ADD_MONTHS('2016-05-31'::date, -1) AS RESULT; +------------+ | RESULT | |------------| | 2016-04-30 | +------------+