こんにちは私はMySQLで正しく解析するストアドプロシージャを取得しようとしています。mysqlストアドプロシージャ構文エラー(日付付き)
私の問題は日付です。私は現在の月の始まりである開始日を作成するストアプロシージャを取得しようとしています。 2009-07-01この日付を使用して、DATA_ADD()関数を使用して月を追加すると、2009-08-01が読み込まれます。
私の問題は、私が試してみてprocdureを実行したときに、それを作成することですしかし、私次のエラーを取得する:
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()));
ストアプロシージャのコードは次のようになります。
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クエリを独立して実行すると、それらはすべて正しい値を返して動作します。ストアドプロシージャにそれらを追加すると、構文エラーで失敗するだけです。
私の頭が痛む原因は何ですか?私はあなたの例を試してみた
おかげで...
です!私はキャストラインで余分を残して気づいたが)! – James