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' |