Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1572 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Question sur les dates et sur 1 requete SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Question sur les dates et sur 1 requete SQL

n°1090658
IvanleFou
Posté le 20-05-2005 à 14:01:41  profilanswer
 

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 :hello:

mood
Publicité
Posté le 20-05-2005 à 14:01:41  profilanswer
 

n°1090666
scull
MySCULL cay bon mangez en!
Posté le 20-05-2005 à 14:04:31  profilanswer
 

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....

n°1090680
jeff@be
Posté le 20-05-2005 à 14:13:00  profilanswer
 

IvanleFou a écrit :

Bonjour,
 
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 :??:  
 


 
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.


Message édité par jeff@be le 20-05-2005 à 14:13:44
n°1090684
IvanleFou
Posté le 20-05-2005 à 14:14:08  profilanswer
 

Effectivement c'est un peu le même problème :)  
 
Reste à trouver la solution :hello:

n°1090693
jeff@be
Posté le 20-05-2005 à 14:17:35  profilanswer
 

Code :
  1. SELECT
  2.   message.*,
  3.   membre1.nom_membre AS expediteur,
  4.   membre2.nom_membre AS destinataire
  5. FROM
  6.   message,
  7.   membre AS membre1,
  8.   membre AS membre2
  9. WHERE
  10.   membre1.id_membre = message.id_dest
  11.   AND membre2.id_membre = message.id_exp


 
 
 

n°1090695
scull
MySCULL cay bon mangez en!
Posté le 20-05-2005 à 14:18:24  profilanswer
 

jeff@be a écrit :

Code :
  1. SELECT
  2.   message.*,
  3.   membre1.nom_membre AS expediteur,
  4.   membre2.nom_membre AS destinataire
  5. FROM
  6.   message,
  7.   membre AS membre1,
  8.   membre AS membre2
  9. WHERE
  10.   membre1.id_membre = message.id_dest
  11.   AND membre2.id_membre = message.id_exp



 
 
Sa c'est de la bonne req thx.

n°1090707
IvanleFou
Posté le 20-05-2005 à 14:21:41  profilanswer
 

jeff@be a écrit :

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.


 
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 :(

n°1090721
jeff@be
Posté le 20-05-2005 à 14:26:47  profilanswer
 

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

n°1090736
IvanleFou
Posté le 20-05-2005 à 14:32:07  profilanswer
 

jeff@be a écrit :

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


 
Merci je vais potasser ca :jap:  
 
 
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 :hello:


Message édité par IvanleFou le 20-05-2005 à 14:32:46
n°1090757
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 20-05-2005 à 14:46:02  profilanswer
 

Tiens, c'est marrant, j'ai failli faire un topic pour poser la même question. :D
 
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 ?

mood
Publicité
Posté le 20-05-2005 à 14:46:02  profilanswer
 

n°1090786
jeff@be
Posté le 20-05-2005 à 15:05:13  profilanswer
 

Attention: ne pas confondre Unix timestamp (résultat de la fonction time() de PHP) avec le type de champs TIMESTAMP de MySQL!

n°1090798
IvanleFou
Posté le 20-05-2005 à 15:10:41  profilanswer
 

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 :pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Question sur les dates et sur 1 requete SQL

 

Sujets relatifs
tri par date sur mysqlpb requete help me:)
requete SQL qui ne marche pasrequete sql sous c++ builder6
Aide pour Optimiser requête SQLmigration access mysql??
[Html/Php/Mysql] comment recuperer des données selon conditionComparaison de dates sous Mysql depuis PHP
Plus de sujets relatifs à : [MySQL] Question sur les dates et sur 1 requete SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR