MYSQL:存储过程日期操作

时间:2012-08-01 05:48:32

标签: mysql

我想在mysql中创建存储过程,我希望在BIGINT中传递两个参数startDate,在INT中传递noOfDays。因此,在该存储过程中创建TEMPORARY表并在其中插入日期。例如,如果我通过1 8月。然后在TEMPORARY表中记录10应该是从1 8到10 8。请给出建议。

1 个答案:

答案 0 :(得分: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;