No MySQL, você pode usar o
ADDDATE()
função para adicionar uma quantidade de tempo especificada a uma data. Por exemplo, você pode usá-lo para adicionar 10 dias a uma determinada data. Você pode especificar se deseja adicionar dias, semanas, meses, trimestres, anos etc. Você também pode adicionar um valor de tempo, como segundos, microssegundos, etc. O
ADDDATE()
função é um sinônimo para o DATE_ADD()
função (ambos fazem a mesma coisa) ao usar a primeira sintaxe listada abaixo. Este artigo contém exemplos para demonstrar o uso do
ADDDATE()
função. Sintaxe
Você pode usar essa função das duas maneiras a seguir:
ADDDATE(date,INTERVAL expr unit)
Ou
ADDDATE(expr,days)
Exemplo 1 – A primeira sintaxe
Aqui está um exemplo de uso da primeira forma da sintaxe.
SELECT ADDDATE('2018-12-01', INTERVAL 2 DAY) AS Result;
Resultado:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Este exemplo adiciona 2 dias à data fornecida pelo primeiro argumento.
Exemplo 2 – A Segunda Sintaxe
Este exemplo pode ser reescrito para o seguinte:
SELECT ADDDATE('2018-12-01', 2) AS Result;
Resultado:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Isso usa a segunda forma da sintaxe. O segundo argumento é um número inteiro que representa quantos dias devem ser adicionados à data fornecida pelo primeiro argumento. Então, obviamente, este formulário só é adequado se você quiser especificar o valor em dias.
Observe que
ADDDATE()
é um sinônimo para DATE_ADD()
somente quando a primeira sintaxe estiver sendo usada. A segunda sintaxe só está disponível em ADDDATE()
. Exemplo 3 - Outras Unidades de Data
Um benefício da primeira forma da sintaxe é que você pode especificar se deseja adicionar dias, semanas, meses, anos, etc. Aqui estão alguns exemplos.
SELECT '2018-12-01' AS 'Start Date', ADDDATE('2018-12-01', INTERVAL 2 WEEK) AS '+2 Weeks', ADDDATE('2018-12-01', INTERVAL 2 MONTH) AS '+2 Months', ADDDATE('2018-12-01', INTERVAL 2 QUARTER) AS '+2 Quarters', ADDDATE('2018-12-01', INTERVAL 2 YEAR) AS '+2 Years';
Resultado:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2018-12-01 | 2018-12-15 | 2019-02-01 | 2019-06-01 | 2020-12-01 | +------------+------------+------------+-------------+------------+
Exemplo 4 – Unidades de tempo
Você também pode usar
ADDDATE()
para adicionar unidades de tempo a um valor de data/hora. Aqui está um exemplo. SELECT ADDDATE('2018-12-01 01:00:00', INTERVAL 2 HOUR) AS Result;
Resultado:
+---------------------+ | Result | +---------------------+ | 2018-12-01 03:00:00 | +---------------------+
Valores esperados
A tabela a seguir mostra os valores de unidade válidos e seu formato esperado.
unit Valor | Esperado expr Formato |
---|---|
MICROSSEGUNDO | MICROSSEGUNDOS |
SEGUNDA | SEGUNDOS |
MINUTO | MINUTOS |
HORA | HORÁRIOS |
DIA | DIAS |
SEMANA | SEMANAS |
MÊS | MESES |
QUARTO | QUARTOS |
ANO | ANOS |
SECOND_MICROSECOND | 'SEGUNDOS.MICROSSEGUNDOS' |
MINUTE_MICROSECOND | 'MINUTOS:SEGUNDOS.MICROSSEGUNDOS' |
MINUTE_SECOND | 'MINUTOS:SEGUNDOS' |
HOUR_MICROSECOND | 'HORAS:MINUTOS:SEGUNDOS.MICROSSEGUNDOS' |
HOUR_SECOND | 'HORAS:MINUTOS:SEGUNDOS' |
HOUR_MINUTE | 'HORAS:MINUTOS' |
DAY_MICROSECOND | 'DIAS HORAS:MINUTOS:SEGUNDOS.MICROSSEGUNDOS' |
DAY_SECOND | 'DIAS HORAS:MINUTOS:SEGUNDOS' |
DAY_MINUTE | 'DIAS HORAS:MINUTOS' |
DAY_HOUR | 'DIAS HORAS' |
YEAR_MONTH | 'ANOS-MESES' |