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

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.