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

    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. Bonjour, merci maintenant je vais adapter DATE_FORMAT à ma requète SELECT.

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

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

      3. 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. Bonjour, en PHP

          function dm2w($date) { $tab = explode("-",$date); return $tab[2]."/".$tab[1]."/".$tab[0]; }
          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?