Resumo
SELECT * FROM NOME_TABELA WHERE data DATE_SUB(DATA_INICIAL, INTERVAL NUM TIPO_ENTERVALO)
SELECT * FROM NOME_TABELA WHERE data DATE_ADD(DATA_INICIAL, INTERVAL NUM TIPO_ENTERVALO)
Introdução
O principal objetivo deste post é explica de maneira simples e rápida como se adicionar ou remover de uma data no mysql horas,minutos, segundos, dias, meses ou anos.
Adicionando dados a uma data
Para adicionar hora, minutos, segundos, dias, meses ou até mesmo anos basta seguir a seguinte sintaxe:
Sintaxe:
DATE_ADD(DATA_INICIAL INTERVAL NUM_INTERVALO TIPO_INTERVALO)
Onde:
- DATA_INICIAL - Data da qual será a base para adicionar as informações.
- NUM_INTERVALO - Número que simboliza o intervalo a ser adicionado a data.
- TIPO_INTERVALO - Tipo do intervalo a ser adicionado: MINUTE (minutos), HOUR (horas), DAY(dias), MONTH (mêses), YEAR (anos).
Exemplos:
Adicionando um ano a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 1 YEAR) AS DATA_MODIFICADA
Adicionando uma hora a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 1 HOUR) AS DATA_MODIFICADA
Adicionando quinze minutos a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 15 MINUTE) AS DATA_MODIFICADA
Adicionando dois meses a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 2 MONTH) AS DATA_MODIFICADA
Removendo dados de uma data
Para remover hora, minutos, segundos, dias, meses ou até mesmo anos basta seguir a seguinte sintaxe:
Sintaxe:
DATE_SUB(DATA_INICIAL INTERVAL NUM_INTERVALO TIPO_INTERVALO)
Onde:
- DATA_INICIAL - Data da qual será a base para remover as informações.
- NUM_INTERVALO - Número que simboliza o intervalo a ser removido a data.
- TIPO_INTERVALO - Tipo do intervalo a ser removido: MINUTE (minutos), HOUR (horas), DAY(dias), MONTH (mêses), YEAR (anos).
Exemplos:
Removendo um ano a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 YEAR) AS DATA_MODIFICADA
Removendo uma hora a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 HOUR) AS DATA_MODIFICADA
Removendo quinze minutos a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 15 MINUTE) AS DATA_MODIFICADA
Removendo dois meses a data atual.
select CURRENT_TIMESTAMP as DATA_ATUAL, DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH) AS DATA_MODIFICADA