MySQLのストアドルーチンを作成して、1か月間の営業日数(営業日は月曜日から金曜日まで)を把握したいと考えています。IF LOOP WITH IF STATEMENT MYSQL
これは構文エラーですが、構文エラーの内容はわかりません。
1064 - SQL構文に誤りがあります。ライン2
で 'THEN WHILE(@daycount < @totaldays)(WEEKDAY(@checkweekday)< 6)場合の対処 ' 近くを使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください私の構文エラーは、以下である:
WHILE(@daycount < @totaldays) DO
IF (WEEKDAY(@checkweekday) < 6) THEN
マイコード:
SELECT MONTH(CURDATE()) INTO @curmonth;
SELECT MONTHNAME(CURDATE()) INTO @curmonthname;
SELECT DAY(LAST_DAY(CURDATE())) INTO @totaldays;
SELECT FIRST_DAY(CURDATE()) INTO @checkweekday;
SELECT DAY(@checkweekday) INTO @checkday;
SET @daycount = 0;
SET @workdays = 0;
BEGIN
WHILE(@daycount < @totaldays) DO
IF (WEEKDAY(@checkweekday) < 6) THEN
SET @workdays = @workdays+1;
END IF;
SET @daycount = @daycount+1;
SELECT ADDDATE('@checkweekday', INTERVAL 1 DAY) INTO @checkweekday;
END WHILE;
END;
SELECT @workdays;
ができ、誰かが支援することですか?私はあなたがストアドプロシージャの外の条件文を持つことができないことを発見した
SET @workdays = 0;
IF (WEEKDAY('2013-06-13') < 6) THEN
SET @workdays = @workdays+1;
END IF;
SELECT @workdays;
関数 'FIRST_DAY()'はありますか? –
はい、あります。ウェブホストは実際にその機能を自動的に持っています。私は自分自身を書いて、自分の機能を使わずに機能を使用しても機能することを認識しました。 first_day()はエラーがどこにあるのかわかりません。それは問題なく通過します。 – scrfix