es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , , ,

Answer

  1. Avatar for 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:

    SELECT strftime('%Y-%m-%d', event_date/1000, 'unixepoch') AS event_date_formatted
    FROM your_table;
    

    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.

Comments are closed.