Problème Date

Résolu

Bonjour, j'ai un problème que je n'arrive pas à résoudre. Après avoir sélectionner un lien qui doit me retourner une date au lieu de ça voici l'erreur retournée.

Erreur ! SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: '01/09/2024'

Pourtant le format de la date est bonne. Je vous remercie pour votre aide.

Merci

10 réponses

  1. Contributeur

    bonjour,

    je pense qu'il faut adapter le code PHP de la page.

    1. Bonjour, j'ai une fonction qui retourne la date dans un autre format : AAAA-MM-JJ => JJ/MM/AAAA (mysql => web) mais cela m'a créé cette erreur, mais lorsque je supprime cette fonction cela me renvoie au format Mysql (ci joint une capture)

      Erreur ! SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: '01/09/2024'

      Je ne vois pas ce que je peux faire de plus sur ma page? Une question étant donné que je travail en local il y aurai pas un probléme avec la configuration Mysql? je suis avec la version 8.0.31.

      Merci pour votre aide.

      1. Contributeur

        Cette fonction est écrite dans quel langage?

    2. Bonjour, en PHP

      function dm2w($date) { $tab = explode("-",$date); return $tab[2]."/".$tab[1]."/".$tab[0]; }
      1. Modérateur

        bonjour 

        vu le message d'erreur, le problème se produit au moment de l'exécution d'une requête SQL...

        hors..., en SQL, les dates doivent être écrites au format anglais et non en français....


        1. je souhaiterai formater justement la date sql en format français pour mon affichage.

          1. Modérateur

            a l'affichage ok.. mais là.. ce n'est pas à l'affichage que tu as l'erreur... 

            pour l'affichage, tu porras, dans ta requête sql, faire un date_format

            https://www.w3schools.com/sql/func_mysql_date_format.asp

            pour ce qui est de ton message d'erreur actuel, ne voyant pas le code concerné, nous ne pourrons pas t'aider davantage....

        2. Bonjour après avoir testé ma requète SQL dans phpmyadmin je ne comprends pas pourquoi j'ai un retour NULL, ci dessous une capture.

          Je vous remercie.

          1. Contributeur

            C'est pourtant clairement écrit: incorrect datetime value: 'ddebut'.

            Pour t'aider à comprendre, essaye

            select 'ddebut' from bag_gerer
          2. Modérateur

            ddebut est le nom d'une colonne ....  pas un "string" ...  il ne faut donc pas le mettre entre quotes

        3. Bonjour, merci maintenant je vais adapter DATE_FORMAT à ma requète SELECT.

          1. Bonjour, j'ai encore un soucis concernant ma requète avec DATE_FORMAT un soucis d'erreur de syntaxe, voici l'erreur et la requète.

            Je vous remercie.

            Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'FROM bag_gerer WHERE idpers = '14' AND idfonc = '3' AND dde' à la ligne 1
            $sql = "SELECT DATE_FORMAT(ddebut, '%d/%m/%Y') * FROM bag_gerer
            WHERE idpers = :idpers
            AND idfonc = :idfonc
            AND ddebut = :ddebut
            AND dfin IS NULL";
            1. Contributeur

              C'est bizarre de faire cette requête si tu connais la valeur de ddebut.

              Tu peux faire plutôt:

              select date_format(:ddebut,"%d/%m/%Y");

              Peux-tu montrer un peu plus de code, jusqu'à l'appel à la base de donnée?

          2. Modérateur

            Bon... 

            En partant du principe que la variable associée à :ddebut  est bien au format anglais (Y-m-d ) ( sinon tu auras encore le message d'erreur que tu nous as montré dans ton premier message...

            Ta requête devrait ressembler à ceci:

            $sql = "SELECT DATE_FORMAT(BG.ddebut, '%d/%m/%Y') as DDEBUT_FR
                           ,BG.* 
                    FROM bag_gerer BG
                    WHERE BG.idpers = :idpers
                      AND BG.idfonc = :idfonc
                      AND BG.ddebut = :ddebut
                      AND BG.dfin IS NULL";