156 votes

Comment convertir un timestamp en datetime dans MySQL ?

Comment convertir 1300464000 a 2011-03-18 16:00:00 dans MySQL ?

230voto

Richard Tuin Points 1664

Utiliser le FROM_UNIXTIME() dans MySQL

Rappelez-vous que si vous utilisez un cadre qui stocke l'information en millisecondes (par exemple le timestamp de Java), vous devez diviser par 1000 pour obtenir le temps Unix correct en secondes.

79voto

Kingshuk Deb Points 474
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`

C'est la solution ultime si la date donnée est dans un format encodé comme 1300464000

17voto

ksvendsen Points 1

Pour répondre au commentaire de Janus Troelsen

Utilice UNIX_TIMESTAMP au lieu de TIMESTAMP

SELECT from_unixtime( UNIX_TIMESTAMP(  "2011-12-01 22:01:23.048" ) )

La fonction TIMESTAMP renvoie une date ou une heure et non un horodatage, tandis que UNIX_TIMESTAMP renvoie un horodatage Unix.

12voto

user2613580 Points 246

Vous pouvez utiliser

select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;

Pour une description détaillée

  1. from_unixtime()
  2. unix_timestamp()

4voto

Leo Points 69

SELECT from_unixtime( UNIX_TIMESTAMP(fild_with_timestamp) ) from "your_table"
Cela fonctionne pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X