No MySQL, você pode usar o
DATE_ADD()
função para adicionar uma quantidade de tempo especificada a uma data. Por exemplo, você pode usá-lo para adicionar 5 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. Este artigo contém exemplos que demonstram como o
DATE_ADD()
função funciona. Sintaxe
A sintaxe fica assim:
DATE_ADD(date,INTERVAL expr unit)
Exemplo 1 – Uso básico
Aqui está um exemplo de uso.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Resultado:
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Este exemplo adiciona 20 dias à data fornecida pelo primeiro argumento.
Exemplo 2 - Outras Unidades de Data
Você pode especificar as unidades em dias, semanas, meses, anos, etc. Aqui estão alguns exemplos.
SELECT '2020-10-01' AS 'Start Date', DATE_ADD('2020-10-01', INTERVAL 2 WEEK) AS '+2 Weeks', DATE_ADD('2020-10-01', INTERVAL 2 MONTH) AS '+2 Months', DATE_ADD('2020-10-01', INTERVAL 2 QUARTER) AS '+2 Quarters', DATE_ADD('2020-10-01', INTERVAL 2 YEAR) AS '+2 Years';
Resultado:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2020-10-01 | 2020-10-15 | 2020-12-01 | 2021-04-01 | 2022-10-01 | +------------+------------+------------+-------------+------------+
Exemplo 3 – Unidades de tempo
Você também pode adicionar unidades de tempo a um valor de data/hora. Aqui está um exemplo.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Resultado:
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
E você pode especificar várias unidades ao mesmo tempo. Por exemplo, você pode especificar horas e minutos. Assim.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Resultado:
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30: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' |
Você também pode usar o comando
ADDDATE()
função para fazer a mesma coisa (é um sinônimo para o DATE_ADD()
função ao usar a mesma sintaxe). Além disso, a sintaxe de ADDDATE()
tem uma segunda forma, que é um método abreviado de adicionar um certo número de dias a uma data. Para obter mais informações, consulte Exemplos de ADDDATE() no MySQL.