SQLite no tiene un tipo de dato fecha o tiempo, en su lugar el almacena las fecha en un formato de cadena determinado y las manipula a través de funciones.
Las cadenas de texto deben cumplir con los siguientes formatos de valor tiempo para ser tomados como fechas o tiempo por las funciones:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
Puede consultar los valores de tiempo completos en la página oficial de SQLite.
Función SQL DATE().
Regresa la fecha en el formato YYYY-MM-DD.
Sintaxis: DATE(valor-tiempo, modificador, modificador, …)
Donde valor-tiempo es una cadena de texto con el formato arriba descrito. Y los modificadores pueden ser, entre otros:
NNN days
NNN hours
NNN minutes
NNN.NNNN seconds
NNN months
NNN years
localtime
Puede consultar los modificadores completos en la página oficial de SQLite. Veamos algunos ejemplos de el uso de la función date().
En el ejemplo anterior obtenemos primeramente en la primera columna la fecha actual del sistema (al tiempo de publicar esta entrada el 2 de septiembre de 2021) aplicando el modificador mostrado, y en los columnas posteriores hacemos operaciones de agregar y restar días a la fecha actual. Por último se muestra como agregar un mes y un año a la fecha actual.
Función SQL DATETIME().
Regresa la fecha y el tiempo de 24 horas en el formato YYYY-MM-DD HH:MM:SS.
Sintaxis: DATETIME(valor-tiempo, modificador, modificador, …)
Donde valor-tiempo es una cadena de texto con el formato arriba descrito. Los modificadores son los mismos descritos en en la función DATE().
Veamos el siguiente ejemplo:
En la primer columna la función DATETIME() obtiene la fecha y hora UTC (Tiempo Universal Coordinado) que corresponde a la hora en el meridiano de Greenwich. En la segunda columna la misma función agrega el modificador “localtime” lo que provoca que la fecha y hora correspondan a la zona geográfica en la que nos encontramos.
Podemos también usar los modificadores que utilizamos anteriormente en la función DATE(), pero además podemos usar los modificadores que suman o restan horas, minutos y segundos:
La primera columna muestra la fucnión DATETIME() obteniendo la fecha y hora actual, las siguientes columnas muestran la misma fecha y hora pero aumentada 1 hora, decrementada 30 minutos y aumentada 60 segundos, respectivamente.
Función JULIANDAY().
Regresa el día Juliano al que corresponde la fecha y tiempo dados.
Sintaxis: JULIANDAY(valor-tiempo, modificador, modificador, …)
Ésta función también acepta los mismos modificadores que la función DATE() y DATETIME(). Veamos un ejemplo:
En este ejemplo, estamos obteniendo el día juliano correspondiente al día en que se publicó esta entrada, que es el día 2 de Septiembre de 2021.
Obtener los días de diferencia entre dos fechas con SQLite.
Para obtener la diferencia de días entre dos fechas usamos la función JULIANDAY() de la siguiente forma:
En el ejemplo anterior estamos obteniendo los días transcurridos desde el 16 de Septiembre de 1810 hasta la fecha y hora que se escribió esta entrada que es el 2 de Septiembre de 2021.
En esta sección vimos las funciones de fecha y tiempo más usadas, existen otras las cuales pueden consultar en la documentación del sitio oficial de SQLite.
En la siguiente sección veremos como resumir (summarize en inglés) o acumular datos con SQL. ¡Hasta la próxima!