mysql

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

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Hola, excelente recopilación me sirvió de mucho.
    Por si te quisieras actualizar la lista, QUARTER se traduce como TRIMESTRE.

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.