4

如何仅使用循环和递增日期的 SQL 将行添加到表中,例如:

INSERT INTO my_table (the_date) VALUES ('2013-04-13');
INSERT INTO my_table (the_date) VALUES ('2013-04-14');
INSERT INTO my_table (the_date) VALUES ('2013-04-15');
INSERT INTO my_table (the_date) VALUES ('2013-04-16');
...

我需要从 2013 年 5 月 7 日开始为接下来的每一天插入一行,例如 1000 天。

4

2 回答 2

4

这样的事情会做到这一点: -

INSERT INTO my_table (the_date)
SELECT ADDDATE('2013-04-13', INTERVAL SomeNumber DAY)
FROM (SELECT a.i+b.i*10+c.i*100+d.i*1000 AS SomeNumber FROM integers a, integers b, integers c, integers d) Sub1
WHERE SomeNumber BETWEEN 0 AND 1000

依赖于一个名为 integers 的表,它有一个名为 i 的单列,有 10 行,值从 0 到 9。

之间的子句就在那里,因此您可以限制要添加到日期的数字范围

于 2013-03-04T15:47:20.340 回答
1

试试这个代码:

$starDate = new DateTime('2013-05-07');

for ($i=0; $i < 1000; $i++) { 
  $consulta ="INSERT INTO my_table (the_date) VALUES ('".date_format($starDate, 'Y-m-d')."');";
  $starDate = date_add($starDate, date_interval_create_from_date_string('1 days'));
  echo $consulta."</br>";
  //try somthing like mysqli_query($consulta);
}

使用 php 和 mysqli....你也可以使用纯 sql 来做到这一点;)

我给你这个办法。

萨卢多斯 ;)

于 2013-03-04T16:01:42.197 回答