A continuación se muestra una lista completa de las unidades de fecha y hora que se pueden usar en MariaDB.
Unidad | Descripción |
---|---|
MICROSECOND | Microsegundos |
SECOND | Segundos |
MINUTE | Minutos |
HOUR | Horas |
DAY | Días |
WEEK | Semanas |
MONTH | Meses |
QUARTER | Cuartos |
YEAR | Años |
SECOND_MICROSECOND | Segundos.Microsegundos |
MINUTE_MICROSECOND | Minutos.Segundos.Microsegundos |
MINUTE_SECOND | Minutos.Segundos |
HOUR_MICROSECOND | Horas.Minutos.Segundos.Microsegundos |
HOUR_SECOND | Horas.Minutos.Segundos |
HOUR_MINUTE | Horas.Minutos |
DAY_MICROSECOND | Días Horas.Minutos.Segundos.Microsegundos |
DAY_SECOND | Días Horas.Minutos.Segundos |
DAY_MINUTE | Días Horas.Minutos |
DAY_HOUR | Días Horas |
YEAR_MONTH | Años-Meses |
Estos se pueden usar con +
y -
operadores al realizar operaciones aritméticas en fechas, con funciones como ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
, EXTRACT()
, TIMESTAMPADD()
y TIMESTAMPDIFF()
.
También se pueden utilizar en el ON SCHEDULE
cláusula del CREATE_EVENT()
y ALTER_EVENT()
funciones.
Las unidades de tiempo que contienen un guión bajo son unidades compuestas. Estos consisten en más de una unidad de tiempo base. Estas son una especie de forma abreviada de especificar varias unidades de una sola vez. Cada unidad puede estar separada por cualquier carácter de puntuación.
Ejemplos
Este es un ejemplo de cómo agregar una hora a una expresión de fecha y hora:
SELECT '2021-05-31 10:00:00' + INTERVAL 1 HOUR;
Resultado:
+-----------------------------------------+ | '2021-05-31 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-31 11:00:00 | +-----------------------------------------+
En este caso usamos el +
operador para realizar la suma.
Funciones de fecha y hora
Las unidades de fecha y hora se pueden utilizar con varias funciones de fecha.
Aquí está con el DATE_ADD()
función:
SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Resultado:
+--------------------------------------------------+ | DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-31 11:00:00 | +--------------------------------------------------+
Unidades compuestas
Aquí hay un ejemplo que usa unidades compuestas:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";
Resultado:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-03 16:25:00 | +---------------------+---------------------+---------------------+
Los números enteros pueden estar separados por cualquier carácter de puntuación. Por lo tanto, podríamos reemplazar los dos puntos con puntos para obtener el mismo resultado:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";
Resultado:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-03 16:25:00 | +---------------------+---------------------+---------------------+