Funzione ADD_MONTHS - Amazon Redshift

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 DATETIMESTAMP o un'espressione che implicitamente valuta un tipo DATETIMESTAMP. 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