Database.Guide

No MySQL, você pode usar a função DATE_SUB() para subtrair uma quantidade de tempo especificada de uma data. Por exemplo, você pode utilizá-la para subtrair 7 dias de uma determinada data. Você pode especificar se deve subtrair dias, semanas, meses, trimestres, anos, etc. Você também pode subtrair um valor de tempo, como segundos, microssegundos, etc.

Esta função é similar a DATE_ADD(), exceto que ela subtrai de uma data ao invés de adicionar a ela.

Sintaxe

A sintaxe é assim:

DATE_SUB(date,INTERVAL expr unit)

Exemplo 1 – Uso Básico

Aqui está um exemplo de uso.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Resultado:

+------------+| Result |+------------+| 2021-05-02 |+------------+

Este exemplo subtrai 5 dias da data fornecida pelo primeiro argumento.

Exemplo 2 – Outras Unidades de Data

Pode especificar as unidades em dias, semanas, meses, anos, etc. Aqui estão alguns exemplos.

SELECT '2021-05-07' AS 'Start Date', DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks', DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months', DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters', DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';

Resultado:

+------------+------------+------------+-------------+------------+| Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years |+------------+------------+------------+-------------+------------+| 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07 | 2019-05-07 |+------------+------------+------------+-------------+------------+

Exemplo 3 – Unidades de Tempo

Você também pode subtrair unidades de tempo de um valor de data/hora. Aqui está um exemplo.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Resultado:

+---------------------+| Result |+---------------------+| 2021-05-07 05:00:00 |+---------------------+

E você pode especificar várias unidades ao mesmo tempo. Por exemplo, você pode especificar horas e minutos. Assim.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Resultado:

+---------------------+| Result |+---------------------+| 2021-05-07 08:30:00 |+---------------------+

Valores esperados

A tabela seguinte mostra os valores unitários válidos e o seu formato esperado.

unit Valor Expectado expr Formato
MICROSECOND MICROSECONDS
SEGUNDO SEGUNDOS
MINUTO MINUTOS
HORA HORA
DIA DIAS
SEMANA SEMANAS
MÊS MESES
QUARTO QUARTO
ANO ANOS
SEGUNDO_MICROSSEGUNDO ‘SEGUNDOS.MICROSSEGUNDOS’
MINUTO_MICROSSEGUNDO ‘MINUTOS:SEGUNDOS.MICROSSEGUNDOS’
MINUTO_SEGUNDO ‘MINUTOS:SEGUNDOS’
HORA_MICROSSEGUNDO ‘HORAS:MINUTOS:SEGUNDOS.MICROSSEGUNDOS’
HORA_SEGUNDO ‘HORAS:MINUTOS:SEGUNDOS’
HORA_MINUTO ‘HORAS:MINUTOS:MINUTOS’
DIA_MICROSSEGUNDO ‘DIAS HORAS:MINUTOS:SEGUNDOS.MICROSSEGUNDOS’
DIA_SEGUNDO ‘DIAS HORAS:MINUTOS:SEGUNDOS’
DIA_MINUTO ‘DIAS HORAS:MINUTOS’
DIA_HORA ‘DIAS HORAS’
ANO_MÊS ‘ANOS-MONTHS’

Você também pode usar a função SUBDATE() para fazer a mesma coisa (é um sinônimo para a função DATE_SUB() quando se usa a mesma sintaxe).

Além disso, a sintaxe de SUBDATE() tem uma segunda forma, que é um método de subtrair um certo número de dias a partir de uma data. Para mais informações, veja SUBDATE() Exemplos em MySQL.

Deixe uma resposta

O seu endereço de email não será publicado.