私はMySQLでの保存機能があります、MySQLのストアド関数は、ユーザが入力した日付が好きではありませんか?
CREATE FUNCTION `login_count`(o INT, start_date DATE, end_date DATE) RETURNS INT
READS SQL DATA
BEGIN
DECLARE total_count INT;
SELECT COUNT(*) INTO total_count FROM logins as l WHERE `order_id` = o && modified BETWEEN start_date AND end_date;
RETURN total_count;
END
かなり基本的には、ID、開始日、および終了日を取り、その日付範囲のログインの数を返します。私はそれを実行するたびに私は0を取得します。 where句の日付セクションを削除しない限り次に、実際の数値を返します。または、私は手動で格納された関数に日付を置くだけで、それは動作します...それは日付の問題ではありませんが、私はそれが好きではないパラメータリストを介して日付を供給しているとき。
これが起こる原因は何ですか?実際には、私は手動で日付を格納された関数に入れることができ、本当にバグを起こします。ここで何が起こっているのではないかと思うので、私は次に何をしようとしているのか分かりません。
また、ストアドファンクション/プロシージャをデバッグする方法もあります。私はちょうど0を得ていますが、何が起こっているのかを試してみるためにこれをデバッグする方法がありますか?
チップをありがとう、私はこれをデバッグしようとします。ここの日付のものは、私がそれをどう呼んでいるかです。 SELECT login_count(3250、 '2009-05-31'、 '2009-06-31'); これは正しいフォーマットですが、何が起こっているかを知っています。私は少し物事を試して、より多くの情報を投稿します。 –
Heh、あなたのコメントは、私に戻って、日付とバイリンガルにしました。私は月末にYYYY-MM-31を使い続けていましたが、それはいつも働いていました。しかし、この例で何らかの理由で6月に31日が好きではなかった:) –
Heh!私の提案が本当の問題に気付くのを助けてくれたら嬉しいです。 –