- Categorias:
ADD_MONTHS¶
Adiciona ou subtrai um número especificado de meses em relação a uma data ou carimbo de data/hora, preservando as informações de fim de mês.
Sintaxe¶
ADD_MONTHS( <date_or_timestamp_expr> , <num_months_expr> )
Argumentos¶
Obrigatório:
date_or_timestamp_expr
Esta é a expressão da data ou do carimbo de data/hora a qual você deseja adicionar um número especificado de meses.
num_months_expr
Este é o número de meses que você deseja adicionar. Ele deve ser um número inteiro. Ele pode ser positivo ou negativo. Se o valor for um valor numérico não inteiro (por exemplo, FLOAT), o valor será arredondado para o inteiro mais próximo.
Retornos¶
O tipo de dados do valor retornado é o mesmo que o tipo de dados do primeiro parâmetro. Por exemplo, se a entrada for uma DATE
, então a saída será uma DATE
. Se a entrada for um TIMESTAMP_NTZ
, então a saída será um TIMESTAMP_NTZ
.
Notas de uso¶
ADD_MONTHS retorna resultados um pouco diferentes de DATEADD usado com um componente
MONTH
:Tanto para ADD_MONTHS como para DATEADD, se o mês de resultado tiver menos dias do que o dia original, o dia de resultado do mês será o último dia do mês de resultado.
Somente para ADD_MONTHS, se o dia original for o último dia do mês, o dia do resultado do mês será o último dia do resultado do mês.
num_months_expr
pode ser um número inteiro positivo ou negativo para adicionar ou subtrair meses, respectivamente.
Exemplos¶
Adicionar 2 meses a uma data e converter uma data em um carimbo de data/hora sem fuso horário:
SELECT ADD_MONTHS('2016-05-15'::timestamp_ntz, 2) AS RESULT; +-------------------------+ | RESULT | |-------------------------| | 2016-07-15 00:00:00.000 | +-------------------------+
Demonstrar a preservação das informações de fim do mês:
Adicionar um mês ao último dia de fevereiro de 2016 (um ano bissexto).
Subtrair um mês do último dia do mês de maio de 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 | +------------+