Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 15h01   #1
Invité de passage
 
Inscription : juin 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 6
Points : 2
Points : 2
Par défaut [SQL] Comparaison d'une date au format FR avec la date du jour au format US

Bonjour,

Je stocke dans une base de données MySQL les dates de décès de personnes mortes pendant les guerres 1914 - 1918 et 1939 - 1945 en Belgique; ces dates sont stockées au format français (JJ/MM/AAAA).

Je souhaite extraire de cette base de données les dates qui correspondent à la date du jour (jour et mois uniquement). Par exemple, nous sommes aujourd'hui le 22 octobre 2007 et je souhaite donc extraire de ma base les noms des personnes décédées un 22 octobre (par exemple, 1914, 1942, etc.).

Je me doute que le problème vient du fait que mes dates sont stockées au format FR et que les fonctions intégrées de MySQL répondent au format US, mais je ne vois pas comment résoudre le problème. Quelqu'un pourrat-il me dire ce qui manque dans ma requête SQL (faut-il préciser que je ne suis pas un expert en SQL, PHP, etc., m'inspirant de ce qui existe pour essayer d'améliorer mon site) ? La table s'appelle INDIVIDUALS et le champ contenant la date de décès au format FR s'appelle DATE_DECES.

D'avance, merci à toute âme charitable qui pourra m'aider.

Danny

Code :
1
2
3
4
5
 
 
$sql = 'SELECT * FROM INDIVIDUALS '
. ' WHERE DAY(curdate())=DAY(DATE_DECES) AND MONTH(curdate())=MONTH(DATE_DECES)'
. ' ORDER BY `NOM` , `PRENOM`';
delcada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 15h15   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Tu as bien soulevé le probleme : tes dates ne sont pas stockées au format US, c'est donc simplement du texte, tu ne peux pas y appliquer les fonctions de traitement des dates de mysql directement dessus.
Un peu comme si dans ta base tu stockais les nombres en lettres et que tu voulait pouvoir faire cinq + sept automatiquement.

Donc soit tu stockes tes dates au format US (et dans un champ DATE pas dans un varchar) soit tu récupères les données et tu les traites directement en php.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 15h22   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Entièrement d'accord avec koopajah Cependant, je pense, que vous pouvez tout de même vous débrouillez en effectuant d'abord une conversion de format FR vers US via la fonction MySQL STR_TO_DATE d'abord (version >= 4.1.1 requise).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h53.


 
 
 
 
Partenaires

Hébergement Web