¿Cómo convertir 1300464000
a 2011-03-18 16:00:00
MySQL?
¿Cómo convertir 1300464000
a 2011-03-18 16:00:00
MySQL?
Respuestas:
Use la FROM_UNIXTIME()
función en MySQL
Recuerde que si está utilizando un marco que lo almacena en milisegundos (por ejemplo, la marca de tiempo de Java) debe dividir por 1000 para obtener el tiempo correcto de Unix en segundos.
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )
no funciona ¿por qué? usando v5.6
SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )
funciona. TIMESTAMP()
no devuelve un valor entero.
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`
Esta es la solución definitiva si la fecha dada está en formato codificado como 1300464000
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
orderdate
), '% Y-% m-% d') como "Fecha" FROM orders
sería la solución definitiva: D
Para responder el comentario de Janus Troelsen
Use UNIX_TIMESTAMP en lugar de TIMESTAMP
SELECT from_unixtime( UNIX_TIMESTAMP( "2011-12-01 22:01:23.048" ) )
La función TIMESTAMP devuelve una fecha o una fecha y hora y no una marca de tiempo, mientras que UNIX_TIMESTAMP devuelve una marca de tiempo de Unix
Puedes usar
select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;
Para una descripción detallada de