Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione ADD_MONTHS
ADD_MONTHS aggiunge il numero di mesi specificato a un valore o espressione di data o timestamp. La funzione DATEADD fornisce una funzionalità simile.
Sintassi
ADD_MONTHS( {date | timestamp}, integer)
Argomenti
- date | timestamp
-
Una colonna di tipo di dati
DATE
oTIMESTAMP
o un'espressione che implicitamente valuta un tipoDATE
oTIMESTAMP
. Se la data è l'ultimo giorno del mese o se il mese risultante è più corto, la funzione restituisce l'ultimo giorno del mese nel risultato. Per le altre date, il risultato contiene lo stesso numero di giorni dell'espressione di data. - integer
-
Un valore di tipo
INTEGER
. Utilizza un numero negativo per sottrarre mesi dalle date.
Tipo restituito
TIMESTAMP
Esempi
La query seguente utilizza la funzione ADD_MONTHS in una funzione TRUNC. La funzione TRUNC rimuove l'ora del giorno dal risultato di ADD_MONTHS. La funzione ADD_MONTHS aggiunge 12 mesi a ogni valore della colonna CALDATE. I valori nella colonna CALDATE sono date.
select distinct trunc(add_months(caldate, 12)) as calplus12, trunc(caldate) as cal from date order by 1 asc;
calplus12 | cal ------------+------------ 2009-01-01 | 2008-01-01 2009-01-02 | 2008-01-02 2009-01-03 | 2008-01-03 ... (365 rows)
L'esempio seguente utilizza la funzione ADD_MONTHS per aggiungere 1 mese a un timestamp.
select add_months('2008-01-01 05:07:30', 1);
add_months --------------------- 2008-02-01 05:07:30
Gli esempi seguenti illustrano il comportamento quando la funzione ADD_MONTHS opera su date con mesi che hanno un numero di giorni differente. Questo esempio mostra come la funzione gestisce l'aggiunta di 1 mese al 31 marzo e l'aggiunta di 1 mese al 30 aprile. Aprile ha 30 giorni, quindi aggiungendo 1 mese al 31 marzo si ottiene il 30 aprile. Maggio ha 31 giorni, quindi aggiungendo 1 mese al 30 aprile si ottiene il 31 maggio.
select add_months('2008-03-31',1);
add_months --------------------- 2008-04-30 00:00:00
select add_months('2008-04-30',1);
add_months --------------------- 2008-05-31 00:00:00