Problema:
Você gostaria de adicionar dias a uma data em um banco de dados MySQL.
Exemplo:
Nosso banco de dados tem uma tabela chamada
trip
com dados nas colunas id
, city
e start_date
. id | cidade | data_inicial |
---|---|---|
1 | Chicago | 22-06-2019 |
2 | Houston | 2019-07-15 |
3 | Dallas | 2019-08-30 |
4 | Austin | 23-09-2019 |
Vamos adicionar dois dias às datas de início e obter as cidades da viagem com as novas datas de início.
Solução:
Usaremos o
DATE_ADD()
função. Aqui está a consulta que você escreveria:SELECT city, DATE_ADD(start_date, INTERVAL 2 DAY) AS later_date FROM trip;
Segue o resultado da consulta:
cidade | data_inicial |
---|---|
Chicago | 24-06-2019 |
Houston | 2019-07-17 |
Dallas | 2019-09-01 |
Austin | 25-09-2019 |
Discussão:
Use o
DATE_ADD()
função se você deseja aumentar uma determinada data em um banco de dados MySQL. Em nosso exemplo, aumentamos cada data de início em dois dias. Esta função recebe dois argumentos. O primeiro argumento é a data ou data e hora que você deseja alterar. Esse argumento pode ser o nome de uma coluna de data/datahora ou uma expressão que retorna um valor de data/datahora. Em nosso exemplo, usamos o
start_date
coluna, que é do tipo de dados de data. O segundo argumento é o operador INTERVAL seguido por um número inteiro indicando o número de unidades (no nosso exemplo, 2) e a unidade de data/hora a ser adicionada (no nosso exemplo, DAY). Você pode encontrar mais sobre unidades de intervalo na seção Interval Expression and Unit Arguments da documentação do MySQL.
DATE_ADD()
retorna um novo valor de data ou data e hora. Em nosso exemplo, a viagem para Houston tem uma nova data de início:'2019-07-17'.