Bonjour, je m'amuse à essayer d'obtenir une procédure stockée pour analyser correctement MySQL.Erreurs de syntaxe de la procédure stockée mysql avec les dates
Mon problème concerne les dates. J'essaie d'obtenir la procédure de magasin pour créer une date de début qui est le début du mois en cours, par exemple. 2009-07-01. En utilisant cette date, j'utilise ensuite la fonction DATA_ADD() pour ajouter un mois afin qu'il se lise le 2009-08-01.
Cependant, mon problème est que quand je tente de courir le procdure pour créer ce que j'obtiens l'erreur suivante:
Script line: 7 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 'DECLARE
cur_month INT;
SET cur_month = (SELECT MONTH(CURRENT_DATE()));
Le code de la procédure de magasin ressemble à ceci:
DROP PROCEDURE IF EXISTS sp_test;
DELIMITER //
CREATE PROCEDURE sp_test()
BEGIN
/*we work out the start and end dates*/
DECLARE cur_year INT;
SET cur_year = (SELECT YEAR(CURRENT_DATE()));
DECLARE cur_month INT;
SET cur_month = (SELECT MONTH(CURRENT_DATE()));
DECLARE temp_date VARCHAR(10);
SET temp_date = (SELECT CONCAT(cur_year,'-',cur_month,'-01'));
DECLARE start_date DATE;
SET start_date = (SELECT CAST(temp_date AS DATE)));
DECLARE end_date DATE;
SET end_date = (SELECT DATE_ADD(start_date, INTERVAL 1 MONTH));
INSERT INTO my_table (startdate, enddate)VALUES(start_date, end_date);
END; //
DELIMITER ;
I J'ai exécuté les requêtes indépendamment et elles retournent toutes des valeurs correctes et fonctionnent, cela ne commence à échouer qu'avec des erreurs de syntaxe lorsque je les ajoute dans une procédure stockée.
Qu'est-ce qui me manque ici qui cause toutes mes douleurs à la tête?
Merci ...
je fait cette première! Bien que j'ai remarqué que j'ai laissé l'extra) dans la ligne de fonte! – James