Todas las unidades y formatos para interval

Todos los formatos y unidades para uso de interval en MySQL

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.

|Intervalo|Descripción y explicación|Ejemplos|Rangos, tipos y formatos
|-|-|-|-|
|MICROSECOND|Microsegundos, un microsegundo es la millonésima parte de un segundo. O sea, un millón de microsegundos es 1 segundo|10, 20, 1000|Cualquier número entero, si se pasa de un millón, se suman como segundos
|SECOND|Segundos|10, 60, 50|Cualquier número entero, si nos pasamos de 60 entonces se suman como minutos
|MINUTE|Minutos|1, 2, 10, 20|Número entero, si nos pasamos de 60 entonces se suma como hora
|HOUR|Horas|"1, 2, 24, "|Número entero indicando las horas, si nos pasamos de 24 entonces se suman como días
|DAY|Días|10, 20|Un número de días, sería como 24 horas
|WEEK|Semanas, o sea 7 días|1, 2, 50, 80|Un número entero representando las semanas
|MONTH|Meses así como los conocemos, sin importar el número de días que tengan|1, 2, 3, 50, 20|Número representando los meses que se suman, aquí no se toman en cuenta los días de cada mes, simplemente se suma un mes. Por ejemplo, dentro de un mes será 5 de enero, y dentro de 2, 5 de febrero (suponiendo que leemos esto el 5 de diciembre)
|QUARTER|No sé cómo se traduzca del inglés al español, pero representa la cuarta parte de un año, o sea 3 meses|1, 2, 3, 4 para un año|Número indicando cuántos cuartos de año queremos. 4 de ellos son un año
|YEAR|Años|1, 2, 3, 80, 100|Un número indicando los años. Por ejemplo, si sumamos un año al 2018 se convierte en 2019
|SECOND_MICROSECOND|Segundos con microsegundos|1.0 sería un segundo, 1.5 un segundo y medio, 0.10 sería un segundo y un décimo de segundo|Número en formato decimal, por ejemplo 1.0
|MINUTE_MICROSECOND|Minutos con microsegundos|"'10:30.5' serían 10 minutos con 30 segundos  y medio. El formato es HH:SS.NN en donde H son horas, S segundos y N microsegundos"|Formato en HH:SS.NN
|MINUTE_SECOND|Minutos con segundos|"'20:30' serían veinte minutos y medio, como el ejemplo de arriba pero sin microsegundos. "|Formato en MM:SS
|HOUR_MICROSECOND|Horas con minutos, segundos y microsegundos|'01:50:30.50' sería una hora, cincuenta minutos y treinta segundos y medio|Formato en HH:MM:SS.NN
|HOUR_SECOND|Horas con minutos y segundos|'23:50:30' serían 23 horas, 50 minutos y 30 segundos|Formato en HH:MM:SS
|HOUR_MINUTE|Horas con minutos|'20:50' serían 20 horas con 50 minutos|Formato en HH:MM
|DAY_MICROSECOND|Días con horas, minutos, segundos y microsegundos|"'10 12:50:30.11' serían diez días, doce horas con cincuenta minutos, 30 segundos y 11 microsegundos. Fíjate en el espacio "|Formato en DD HH:MM:SS.NN. Hay que fijarse bien en que DD está separado de HH, no es un error de escritura
|DAY_SECOND|Días con horas, minutos y segundos|"'10 12:50:30' serían diez días, doce horas con cincuenta minutos y 30 segundos (como arriba pero sin microsegundos). Fíjate en el espacio "|Formato en DD HH:MM:SS. Hay que fijarse bien en que DD está separado de HH, no es un error de escritura
|DAY_MINUTE|Días con horas y minutos|'50 20:30' serían cincuenta días, veinte horas y treinta minutos. De nuevo mira el espacio|Formato en DD HH:MM. Hay que fijarse bien en que DD está separado de HH, no es un error de escritura
|DAY_HOUR|Días con horas|'85 20' serían 85 días con 20 horas|Formato en DD HH
|YEAR_MONTH|Años con meses|'10-6' representan diez años y seis meses, o diez años y medio. No olvides ponerlos entre comillas, si no se tomará como una resta|Formato en A-MM en donde A es la cantidad de años, y meses la cantidad de meses. Si quieres, puedes poner el cero a la izquierda del mes,  aunque es lo mismo

¿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

Todas las unidades y formatos para interval
Todas las unidades y formatos para interval

He creado un fiddle para que puedas probarlo por ti mismo.

 

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “Todos los formatos y unidades para uso de interval en MySQL”

  1. Pingback: Sumar y restar fechas con MySQL usando date_add y date_sub - Parzibyte's blog

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *