56 votes

Formater la date dans MySQL SELECT en ISO 8601

J’essaie de saisir la date de ma base de données dans un horodatage standard et de l’afficher comme ISO 8601. Je ne peux pas le faire facilement en PHP, alors j’essaie de le faire dans mon instruction SELECT. C’est ce que j’ai, mais il affiche une erreur:

Qu’est-ce que je fais de mal?

95voto

ypercube Points 62714

Le doit être dans la liste:

8voto

Professor Falken Points 501

DATE_FORMAT ne fonctionne que sur les colonnes de date MySQL, pas sur les horodatages.

Un horodatage UNIX est un entier contenant le nombre de secondes depuis le 1er janvier 1970 UTC. Pour la formater en tant que date ISO 8601, vous devez utiliser la fonction FROM_UNIXTIME() à la place.

FROM_UNIXTIME prend les mêmes chaînes de format que DATE_FORMAT, donc pour mettre en forme une colonne nommée 'created' vous devez :

7voto

ofumbi Points 145

Cela a fonctionné pour moi

 DATE_FORMAT( CONVERT_TZ(`timestamp`, @@session.time_zone, '+00:00')  ,'%Y-%m-%dT%TZ')

5voto

AL the X Points 352

Charger le champ de date à partir de la base de données et le convertir au format ISO avec PHP est simple; voir la chaîne de format vers PHP : http://www.php.net/manual/en/function.date.php

4voto

Niet the Dark Absol Points 154811

Pourquoi est-il difficile de le faire en PHP ?

Quoi qu’il en soit, cela `` doit être dans les champs à sélectionner, pas collé à la fin.

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