1
ストアドプロシージャのループでタイムスタンプ変数を使用しようとすると問題が発生します。以下に、gtimeはTIMESTAMP入力変数であり、サンプルiが適切にその値を変更しながらストアドプロシージャのmysql変数とループ
...
DECLARE t TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
DECLARE i,step INT DEFAULT 0;
SET t = gtime;
myLabel: LOOP
IF i = samples THEN
LEAVE myLabel;
END IF;
SELECT a, b FROM myTable
WHERE myField = 1
AND g_time > t
AND g_time < '2011-09-06 00:00:09';
SET i = i + 1;
SET t = t + 1500;
ITERATE myLabel;
END LOOP myLabel;
...
可変INTEGER入力され、ループは「サンプル」回実行され、Tは影響を受けず、従ってSELECT文が正しく動作しません。 t変数は常に元の値を持ちます。
t変数が同じままである理由は何ですか?私はwhile文も使ってみましたが、問題は同じです。ループ内で変更されているSELECTで変数を使用することは禁じられていますか?
残念ながら、それは動作しません。 tは変わらない。私も試みた\t \t \t SET t = TIMESTAMPADD(MINUTE、60、t); でも運がない。何がうまくいかないのですか?タイムスタンプ形式の問題ですか? – Fotakis