vespa Posté 10 Octobre 2009 Partager Posté 10 Octobre 2009 Bonjour, Je voudrais faire une requete sur un champ datetime (contenant par exemple : 2009-10-10 18:42:33) mais je n'y arrive pas ... J'aimerai selectionner sur ce champ datetime les enregistrements du jour... Merci d'avance pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 12 Octobre 2009 Partager Posté 12 Octobre 2009 voilà : select * from MA_TABLE where to_char(MON_CHAMP_DATE, 'dd')='12'; -- Avec '12' à remplacer par la date du jour Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 12 Octobre 2009 Partager Posté 12 Octobre 2009 Bonjour, Je pense que Vespa voulait parler d'équivalence de date, et non de "jour" uniquement... Je pense que ça devrait marcher comme ça : $rq = 'SELECT champ FROM table WHERE ladate LIKE "'.date('y-m-d').'%"'; Sinon, tu peux utiliser la fonction substr en SQL, mais ce doit être plus lourd : $rq = 'SELECT champ FROM table WHERE SUBSTR(ladate, 10) = "'.date('y-m-d').'"'; Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 13 Octobre 2009 Partager Posté 13 Octobre 2009 (modifié) Bonjour, Je pense que Vespa voulait parler d'équivalence de date, et non de "jour" uniquement... Je pense que ça devrait marcher comme ça : $rq = 'SELECT champ FROM table WHERE ladate LIKE "'.date('y-m-d').'%"'; Sinon, tu peux utiliser la fonction substr en SQL, mais ce doit être plus lourd : $rq = 'SELECT champ FROM table WHERE SUBSTR(ladate, 10) = "'.date('y-m-d').'"'; dans ce cas, select * from MA_TABLE where to_char(MON_CHAMP_DATE, 'dd-mm-yyyy')='13-10-2009'; en régle générale, je préfère convertir une date en chaine qu'une chaine en date. Ce n'est pas pasqu'on voit affiché "2009-10-10 18:42:33" sur son phpMyAdmin ou autre qu'on doit estimer qu'en SQL, la vue sera la même (les préférences d'affichage peuvent formater la date différemment, genre format fr, etc...). Il me parait plus prudent de demander a SQL de s'occuper de la conversion au format demandé, plutôt que d'essayer de gérer soit même. Sans compter qu'un débutant pourrait comprendre qu'une date et une chaine sont la même chose, et une fois arrivé dans un langage fortement typé, chercher pendant des heures pourquoi son test ne marche pas... // exemple en java : Date date = new Date(); if (date.equals("13/12/2009")) { // Syntaxe ok, mais ne fonctionnera jamais .... Attention, je ne veux pas dire qu'en java, on doit convertir les dates en chaines pour les comparer, hein ? Modifié 13 Octobre 2009 par angel-dust-web Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 14 Octobre 2009 Partager Posté 14 Octobre 2009 Bonjour, plutôt que de forcer des conversions en chaine, je travaillerais directement sur la date : select * from tatable where date(ladate) = curdate() Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant