Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de DATE_ADD() – MySQL


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.