0

その中でmysqlでストアドプロシージャを作成したいのですが、BIGINTでstartDateとINTでnoOfDaysの2つのパラメーターを渡したいです。したがって、そのストアド プロシージャで TEMPORARY テーブルを作成し、それに日付を挿入します。たとえば、8月1日を過ぎた場合 および 10 の場合、TEMPORARY テーブルのレコードは 8 月 1 日から 8 月 10 日までである必要があります。そのための提案をしてください。

4

1 に答える 1

1

次の手順でこれを行います。

CREATE PROCEDURE sp_insert_date_data(arg_start_date DATE, arg_no_of_days INT unsigned)
BEGIN
    SET @var_date_cnt = 0;

    DROP TEMPORARY TABLE IF EXISTS tmp_date;
    CREATE TEMPORARY TABLE tmp_date;
    (
        dates DATE NOT NULL
    );

    WHILE(@var_date_cnt < arg_no_of_days)
    DO
        INSERT INTO tmp_date(dates)
        VALUES
        (DATE_ADD(arg_start_date, INTERVAL @var_date_cnt DAY));

        SET @var_date_cnt = @var_date_cnt + 1;
    END WHILE;

    SELECT * FROM tmp_date;
END;
于 2012-08-01T06:03:13.763 に答える