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

SQL Procédural MySQL Discussion :

Procédure stockée avec Datetime en paramètre


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 49
    Points : 28
    Points
    28
    Par défaut Procédure stockée avec Datetime en paramètre
    Bonjour,

    J'essaie d'exécuter une procédure stockée avec le champs Datetime en paramètre mais cette dernière me retourne toujours une erreur à l'exécution en m'indiquant qu'il y a une erreur de syntaxe à partir de l'heure. Auriez-vous une idée svp? J'ai fait plein de Forum mais je n'ai rien trouvé sur ce sujet.

    ma procédure est comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PROCEDURE `proc`(IN date_debut DATETIME, IN date_fin DATETIME)
    BEGIN 
    SET @tbls1 = CONCAT('SELECT * FROM table1 WHERE start_time BETWEEN ',date_debut,' AND ',date_fin);
    SELECT (@tbls1);
    PREPARE stmt1 FROM @tbls1;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    END$$

    et quand je l'exécute

    CALL proc ('2021-05-12 12:00:00','2021-05-12 13:00:00'); .

    j'ai l'erreur suivante

    Error Code: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '12:00:00 AND 2021-05-12 13:00:00' at line 1

    Merci
    d'avance
    Hil

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut Hilal74.

    Le passage des paramètres me semble correcte.

    Par contre, il y a un problème de syntaxe dans ta requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @tbls1 = CONCAT('SELECT * FROM table1 WHERE start_time BETWEEN ',date_debut,' AND ',date_fin);
    Il faut mettre les dates entre apostrophes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @tbls1 = CONCAT('SELECT * FROM table1 WHERE start_time BETWEEN ''',date_debut,''' AND ''',date_fin'');
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre confirmé Avatar de isabelle.letrong
    Femme Profil pro
    Conseil - Consultante en systèmes d'information
    Inscrit en
    Juillet 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultante en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 109
    Points : 487
    Points
    487
    Par défaut
    Bonjour Hilal74,

    Oui, au sein de la procédure date_debut et date_fin sont considérés comme des DATETIME et non comme des chaines de caractères.

    Tu peux forcer le typage avec la fonction CAST : https://dev.mysql.com/doc/refman/8.0...functions.html

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Bonjour Isabelle, Artemus24,

    Merci beaucoup à vous deux pour votre aide.

    Cdt,
    Hilal74

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/07/2020, 22h50
  2. [2012] Procédure stockée avec table en paramètre
    Par erpWorld dans le forum Développement
    Réponses: 4
    Dernier message: 16/05/2019, 12h12
  3. Procédure stockée avec colonne en paramètre
    Par FunkyBearz dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 02/06/2008, 17h27
  4. Procédure stocké avec un ORDER BY paramétrable
    Par Erakis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 10/11/2005, 14h12
  5. Procédure stockée avec serveur lié et paramètres
    Par AITOZ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/10/2005, 17h51

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