Question sur les dates et sur 1 requete SQL [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 20-05-2005 à 14:04:31
pour ton second prob :
http://forum.hardware.fr/hardwaref [...] 9697-1.htm
Pour le premier, perso j'utilise des date time, mais c'est vraix que c'est assez chaud à manipuler....
Marsh Posté le 20-05-2005 à 14:13:00
IvanleFou a écrit : Bonjour, |
Qu'est-ce qui te gêne en stocker un TIMESTAMP dans un champs de type TIMESTAMP?
Perso, je préfère travailler avec des champs DATETIME, car ça a l'avantage d'être plus lisible, et puis tu peux plus facilement utiliser des fonctions MySQL sur ce type (sans passer par FROM_UNIXTIME()).
Par contre ça utilise deux fois plus de place en termes de stockage.
Marsh Posté le 20-05-2005 à 14:14:08
Effectivement c'est un peu le même problème
Reste à trouver la solution
Marsh Posté le 20-05-2005 à 14:17:35
Code :
|
Marsh Posté le 20-05-2005 à 14:18:24
jeff@be a écrit :
|
Sa c'est de la bonne req thx.
Marsh Posté le 20-05-2005 à 14:21:41
jeff@be a écrit : Qu'est-ce qui te gêne en stocker un TIMESTAMP dans un champs de type TIMESTAMP? |
Le DATETIME deja il est bien organisé pour faire des recherches dans la table mais c'est tout à l'envers de ce que l'on lit donc faut faire un traitement pour remettre dans le bon ordre. Ensuite si je veux ajouter un certain nb de secondes à ma date avec le timestamp c'est super facile. Avec le DATETIME je sais pas comment faire. Maintenant il me manque peut etre les fonctions qui vont bien pour le rendre pratique.
Sinon c'est vrai que le timestamp c'est pas ce qu'il y a de plus lisible
Marsh Posté le 20-05-2005 à 14:26:47
MySQL contient des fonctions intégrées qui te permettent de formater les dates très facilement.
Cfr. manuel de MySQL à la sections Fonctions de dates et d'heures
http://dev.mysql.com/doc/mysql/fr/ [...] tions.html
Marsh Posté le 20-05-2005 à 14:32:07
jeff@be a écrit : MySQL contient des fonctions intégrées qui te permettent de formater les dates très facilement. |
Merci je vais potasser ca
Merci aussi pour ta requete, ca marche impeccable. je n'avais pas pensé a l'astuce de l'alias pour le nom des tables. J'avais essayé exactement cette requete mais sans alias donc je me faisais jeter violement.
Merci beaucoup Jeff
Marsh Posté le 20-05-2005 à 14:46:02
Tiens, c'est marrant, j'ai failli faire un topic pour poser la même question.
Perso, j'utilise la méthode du time() dans un int(10) également.
Quelqu'un peut-il me résumer quelles sont les inconvénients de cette méthodre concrètement ?
Qu'elle sont les avantages du TimeStamp si il y en a ?
Marsh Posté le 20-05-2005 à 15:05:13
Attention: ne pas confondre Unix timestamp (résultat de la fonction time() de PHP) avec le type de champs TIMESTAMP de MySQL!
Marsh Posté le 20-05-2005 à 15:10:41
Perso j'utilise la méthode de l'INT(10) et time() car je suis beaucoup plus à l'aise en PHP qu'avec des requetes SQL.
Je trouve que c'est facile à gérer, ca tient pas beaucoup de place dans la base (il me semble). Par contre c'est sur que si tu parcours ta table avec phpMyAdmin ca dit pas grand chose ces nombres
Marsh Posté le 20-05-2005 à 14:01:41
Bonjour,
Pardonnez moi pour le titre, je n'ai rien trouvé de plus explicite. J'aurai donc 2 questions à poser:
1/ Je souhaite stocker une date (avec heure) j'ai essayé des champs de type de TIMESTAMP et DATE mais je trouve que la manipulation derriere est pas facile. J'ai donc opté pour un champ INT(10) ou je mets directement le timestamp unix. C'est crade comme méthode
2/ J'ai une table (nommée message) qui contient des messages que s'envoyent les utilisateurs donc j'ai l'ID de l'expéditeur (id_exp) et celle du destinataire (id_dest). Ma question est: est-il possible de recupérer les noms des 2 correspondants dans la meme requete?
il existe une autre table membre avec les champs id_membre et nom_membre.
Ma requete actuelle ressemble a ca:
SELECT message.*, membre.nom_membre FROM message, membre WHERE id_dest=id_membre
Avec une telle requete je recupère que le nom du destinataire et je suis obligé de faire une autre requete pour le nom de l'expéditeur.
Merci par avance