En este post vamos a explicar y ver los formatos que podemos usar a la hora de usar la palabra clave interval
en MySQL. Esto es más que nada una guía detallada de todos los formatos y unidades válidas al usar interval, cosa que se ve más al sumar y restar fechas en MySQL o mejor dicho, al trabajar con fechas.
Me he dado a la tarea de crear una tabla con ejemplos, descripción y rangos que explican todas las unidades posibles.
Mira más tutoriales de MySQL aquí.
Formatos y unidades válidas en Interval con MySQL
Hay múltiples unidades de medida que podemos usar con interval, desde microsegundos hasta años. Vamos a ver cosa por cosa.
Por cierto, me he tomado esta tabla de la página oficial como referencia. Lo que expongo aquí es una traducción con ejemplos y con una explicación más fácil.
¿Por qué hay algunos intervalos combinados?
Algunos intervalos puede que no debieran existir a primera vista. Por ejemplo, el de HOUR_MINUTE
que trabaja con horas y minutos, el cual podría ser remplazado únicamente con minutos, pero si analizamos bien y nos preguntamos ¿cómo agrego media hora, en formato de horas? no podemos usar HOUR
con 0.5, así que mejor usamos 00:30
.
Ya sé que podríamos usar MINUTE
con 30, pero la vida no es así de fácil cuando nos enfrentamos a los verdaderos problemas; habrá casos en los que esto será necesario.
Usos de interval
Si no sabes cómo usar, recuerda que la sintaxis es:
... interval [cantidad] [medida]
Por ejemplo:
select date_add(now(), interval 10 microsecond);
Ahí, cantidad es 10 y la medida es microsecond.
Por cierto, para aquellas medidas en donde no son únicamente enteros, recuerda encerrar las unidades entre comillas, por ejemplo:
select date_add(now(), interval '10 12:50:30.11' day_microsecond );
Si no ponemos las comillas, nos dará un error de sintaxis o se hará una resta en caso de que sean enteros.
Ejemplo de todo lo expuesto
He creado un fiddle para que puedas probarlo por ti mismo.
Hola, excelente recopilación me sirvió de mucho.
Por si te quisieras actualizar la lista, QUARTER se traduce como TRIMESTRE.
Pingback: Sumar y restar fechas con MySQL usando date_add y date_sub - Parzibyte's blog