Como converter 1300464000
para 2011-03-18 16:00:00
MySQL?
Como converter 1300464000
para 2011-03-18 16:00:00
MySQL?
Respostas:
Use a FROM_UNIXTIME()
função no MySQL
Lembre-se de que, se você estiver usando uma estrutura que a armazena em milissegundos (por exemplo, carimbo de data / hora de Java), será necessário dividir por 1000 para obter o tempo Unix correto em segundos.
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )
não funciona porque? usando v5.6
SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )
funciona. TIMESTAMP()
não retorna um valor inteiro.
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`
Esta é a solução definitiva se a data especificada estiver em formato codificado como 1300464000
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
orderdate
), '% Y-% m-% d') como "Data" FROM orders
seria a solução definitiva: D
Para responder ao comentário de Janus Troelsen
Use UNIX_TIMESTAMP em vez de TIMESTAMP
SELECT from_unixtime( UNIX_TIMESTAMP( "2011-12-01 22:01:23.048" ) )
A função TIMESTAMP retorna uma Data ou um DateTime e não um registro de data e hora, enquanto UNIX_TIMESTAMP retorna um registro de data e hora unix
Você pode usar
select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;
Para uma descrição detalhada sobre