IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Comparaison d'une date au format FR avec la date du jour au format US


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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`';

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    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.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    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).

Discussions similaires

  1. Comparaison dans une même table des montants avec %
    Par vpavince dans le forum Langage SQL
    Réponses: 12
    Dernier message: 14/01/2015, 10h50
  2. Parser une date suivi d'un fuseaux horaire (date+02:00) et conversion en Date.
    Par SpeedOverflow dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 30/06/2013, 13h37
  3. [Dates] Renommer un fichier avec la date
    Par VFone dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2008, 11h23
  4. [SQL] Tester si une chaine est au format date standard
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2006, 14h00
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo