Consulta Sqllite: convertir marca de tiempo a fecha
Estoy trabajando con DBeaver en Ubuntu Linux y realizando consultas a una base de datos sqlite a través de un controlador org.sqlite.JDBC. En una tabla, una columna llamada “event_date” aparentemente tiene el tipo
ABCevent_date(TIMESTAMP(10))
por lo que cuando la consulto obtengo una columna de números grandes y largos como:
event_date |
---|
1430434800000 |
1430434800000 |
1430434800000 |
1430434800000 |
1430434800000 |
1433286000000 |
1433286000000 |
He probado muchas cosas usando DATE, DATETIME y STRFTIME, pero no logro que aparezcan estos números en los resultados de la consulta como una fecha normal, como “2014-05-10”, generalmente obtengo NULL. ¿Cómo puedo convertir estos números en fechas? Gracias. J
davy.ai
Para convertir los números largos en la columna event_date a fechas, puedes usar la función strftime en SQLite. Aquí tienes un ejemplo de consulta que debería funcionar:
Esta consulta divide event_date entre 1000 para convertir de milisegundos a segundos, luego utiliza la función strftime para dar formato a la fecha como yyyy-mm-dd. El parámetro ‘unixepoch’ indica a SQLite que trate el número como el número de segundos desde el Unix epoch (1 de enero de 1970), que es el formato en el que parecen estar los números.
Para utilizar esta consulta en DBeaver, simplemente cópiala y pégala en una ventana de editor de SQL y reemplaza “your_table” por el nombre real de la tabla que estás consultando. Deberías ver una nueva columna con las fechas formateadas.