gpt4 book ai didi

mysql - 如何用日期范围填充表格?

转载 作者:行者123 更新时间:2023-11-30 21:50:20 26 4
gpt4 key购买 nike

我需要一个 MySQL 表来保存 2011-01-01 和 2011-12-31 之间的所有日期。我创建了一个表,其中一列名称为“_date”,类型为 DATE。

我可以用什么查询来填充所有需要的日期(而不是必须手动输入)?

最佳答案

试试这个:

DROP PROCEDURE IF EXISTS filldates;
DELIMITER |
CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)
BEGIN
WHILE dateStart <= dateEnd DO
INSERT INTO tablename (_date) VALUES (dateStart);
SET dateStart = date_add(dateStart, INTERVAL 1 DAY);
END WHILE;
END;
|
DELIMITER ;
CALL filldates('2011-01-01','2011-12-31');

这里是使用它的 SQL Fiddle:http://sqlfiddle.com/#!2/65d13/1

根据 Andrew Fox 的要求编辑(检查日期是否已存在) .

CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)

BEGIN

DECLARE adate date;

WHILE dateStart <= dateEnd DO

SET adate = (SELECT mydate FROM MyDates WHERE mydate = dateStart);

IF adate IS NULL THEN BEGIN

INSERT INTO MyDates (mydate) VALUES (dateStart);

END; END IF;

SET dateStart = date_add(dateStart, INTERVAL 1 DAY);

END WHILE;

END;//

这里是使用它的 SQL Fiddle:http://sqlfiddle.com/#!2/66f86/1

关于mysql - 如何用日期范围填充表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com