As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Função ADD_MONTHS
ADD_MONTHS adiciona o número especificado de meses a um valor ou expressão de data ou timestamp. A função DATEADD oferece funcionalidade semelhante.
Sintaxe
ADD_MONTHS( {date | timestamp}, integer)
Argumentos
- date | timestamp
-
Uma coluna de data ou timestamp ou uma expressão que converta implicitamente em uma data ou timestamp. Se a data for o último dia do mês ou se o mês resultante for mais curto, a função retorna o último dia do mês nos resultados. Para outras datas, o resultado contém o mesmo número de dia que a expressão de data.
- inteiro
-
Um número inteiro positivo ou negativo. Use um número negativo para subtrair meses de datas.
Tipo de retorno
TIMESTAMP
Exemplo
A seguinte consulta usa a função de ADD_MONTHS dentro de uma função TRUNC. A função TRUNC remove o horário do dia dos resultados de ADD_MONTHS. A função ADD_MONTHS adiciona 12 meses a cada valor da coluna CALDATE.
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)
Os seguintes exemplos demonstram o comportamento quando a função ADD_MONTHS opera em datas com meses que têm diferentes número de dias.
select add_months('2008-03-31',1); add_months --------------------- 2008-04-30 00:00:00 (1 row) select add_months('2008-04-30',1); add_months --------------------- 2008-05-31 00:00:00 (1 row)