Formats de date et Tris différents

Résolu
SJD Messages postés 10 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 17 janvier 2008 - 6 oct. 2005 à 18:55
SJD Messages postés 10 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 17 janvier 2008 - 7 oct. 2005 à 11:45
Bonjour,

Encore un problème sur les dates qu'un newbee comme moi ne sait
résoudre. Voici la déclaration de la date est `date` datetime default
NULL.

En local, avec EasyPhp 1.7, le tri par date avec la requête SELECT id,
date FROM ma_table ORDER BY date DESC donne le résultat attendu, à
savoir des dates triées au format 25/03/2005 16:15. Mais en serveur
déporté, avec phpMyAdmin 2.6.0 la même date est interprétée sous la
forme 3-/-0/2005 25: 1 d'où le résultat de requête différent.

J'ai l'impression que phpMyAdmin cherche une date au format timestamp yyyymmddhhmiss ce que EasyPhp ne fait pas, et il a raison.

Est-ce un problème de définition de la variable date, ou est-ce un
problème d'incompatibilité entre les versions locale et serveur ?
Comment y remédier ?

Merci d'avance

3 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
6 oct. 2005 à 23:24
Salut,



Je vais profiter de ce poste pour poster moi aussi...

En SQL : TIMESTAMP = yyyymmjjhhnnss

En PHP (ou Unix/Linux) TIMESTAMP = nombre de secondes écoulées depuis le 01 Janvier 1970



Bref ça fout un peu le brin ce genre de truc... !





"Est-ce un problème de définition de la variable date, ou est-ce un
problème d'incompatibilité entre les versions locale et serveur ?
Comment y remédier ?"



A tout les coups !!! converti les dates dans un format commun et essaye
3
SJD Messages postés 10 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 17 janvier 2008
7 oct. 2005 à 09:22
Merci J_G

Mon problème vient d'un code SQL (enregistrement et requête). Je
cherche justement le moyen de forcer la fonction NOW() utilisée à
l'enregistrement de la variable date à me renvoyer un format de type
TIMESTAMP. La page http://dev.mysql.com/doc/mysql/fr/datetime.html
donne bien des informations mais où programme-t-on le format : dans la
structure de la table ? dans le code à l'enregistrement ?

Mais je ne comprendrai toujours pas pourquoi l'interprétation du code -
donc le résultat du tri - ce fait différemment entre EasyPHP et
phpMyAdmin !



SJD
3
SJD Messages postés 10 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 17 janvier 2008
7 oct. 2005 à 11:45
Voici la solution au problème. Lors de la requête avec tri par date, il
faut utiliser un format de tri yyyymmddhhmmss par la requête SELECT
..., DATE_FORMAT(date, '%Y%m%d%H%i%S'), ... FROM ma_table ORDER BY date DESC .

La date est récupérée au format de sa déclaration dans la table, chez moi DATETIME classique à savoir yyyy-mm-dd hh:mm:ss



Compléments d'information chez dev.mysql.com ici
0
Rejoignez-nous