Guía de la base de datos

En MySQL, se puede utilizar la función DATE_SUB() para restar una cantidad de tiempo especificada a una fecha. Por ejemplo, puede utilizarla para restar 7 días a una fecha determinada. Puede especificar si desea restar días, semanas, meses, trimestres, años, etc. También puede restar un valor de tiempo, como segundos, microsegundos, etc.

Esta función es similar a DATE_ADD(), excepto que resta de una fecha en lugar de añadirla.

Sintaxis

La sintaxis es la siguiente:

DATE_SUB(date,INTERVAL expr unit)

Ejemplo 1 – Uso básico

Aquí tiene un ejemplo de uso.

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

Resultado:

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

Este ejemplo resta 5 días a la fecha suministrada por el primer argumento.

Ejemplo 2 – Otras unidades de fecha

Se pueden especificar las unidades en días, semanas, meses, años, etc. Aquí hay algunos ejemplos.

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 |+------------+------------+------------+-------------+------------+

Ejemplo 3 – Unidades de tiempo

También puede restar unidades de tiempo a un valor de fecha/hora. Este es un ejemplo.

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

Resultado:

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

Y puede especificar múltiples unidades al mismo tiempo. Por ejemplo, puede especificar horas y minutos. Así.

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

La siguiente tabla muestra los valores de unidad válidos y su formato esperado.

unitValor Esperado exprFormato
MICROSECONDIO MICROSECONDIOS
SEGUNDO SEGUNDOS
MINUTO MINUTOS
HORA HORAS
DÍA DÍAS
SEMANA SEMANAS
MES MESES
TRIMESTRE CUARTOS
AÑO AÑOS
SEGUNDO_MICROSEGUNDO ‘SEGUNDOS.MICROSEGUNDOS’
MINUTO_MICROSEGUNDO ‘MINUTOS:SEGUNDOS.MICROSEGUNDOS’
MINUTO_SEGUNDO ‘MINUTOS:SEGUNDOS’
HORA_MICROSEGUNDO ‘HORAS:MINUTOS:SEGUNDOS.MICROSEGUNDOS’
HORA_SEGUNDO ‘HORAS:MINUTOS:SEGUNDOS’
HORA_MINUTO ‘HORAS:MINUTOS’
DÍA_MICROSEGUNDO ‘DÍAS HORAS:MINUTOS:SEGUNDOS.MICROSEGUNDOS’
DÍA_SEGUNDO ‘DÍAS HORAS:MINUTOS:SEGUNDOS’
DÍA_MINUTO ‘DÍAS HORAS:MINUTOS’
DÍA_HORA ‘DÍAS HORAS’
AÑO_MES ‘AÑOS-MONTHS’

También puede utilizar la función SUBDATE() para hacer lo mismo (es un sinónimo de la función DATE_SUB() cuando se utiliza la misma sintaxis).

Además, la sintaxis de SUBDATE() tiene una segunda forma, que es un método abreviado para restar un determinado número de días a una fecha. Para más información, ver Ejemplos de SUBDATE() en MySQL.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.