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

Exemplos de ADDDATE() – MySQL


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'