如何将增量日期循环插入MySQL?

如何将增量日期循环插入MySQL?,mysql,sql,loops,Mysql,Sql,Loops,如何向仅使用循环和递增日期的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'); ..

如何向仅使用循环和递增日期的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-05-07开始,我需要在接下来的1000天内每天插入一行。类似这样的操作可以:-

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

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

请尝试以下代码:

$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);
}
$starDate=新日期时间('2013-05-07');
对于($i=0;$i<1000;$i++){
$consulta=“在我的表格(日期)中插入值('.”.date_格式($starDate,'Y-m-d')。”);
$starDate=date_add($starDate,date_interval_create_from_date_string('1天'));
echo$consulta.“
”; //试试mysqli_查询($consulta); }
使用php和mysqli……您也可以使用纯sql来实现这一点;)

我给你这样做


萨卢多斯;)

你的循环…你必须首先考虑循环的Num,然后查找那个表中最后插入的ID并取那个日期…然后在循环中,你应该和那个日期相加1天,然后做插入。您使用的是哪个mysql扩展?要插入多少行?表中还有其他列吗?@RobertRozas Check the edit:)@ypercube Check the edit:)确实如此,但它是一个非常有用且简单的表(允许您生成任意大的数字范围),并且意味着您可以使用单个SQL语句执行任何操作,而不是循环执行许多插入操作。我已经做了一个小的编辑,所以它将处理1000天(现在将处理0到9999天之间的时间,只需更改中间子句)作为补充,您可以避免添加额外的整数表。您可以对返回数字0到9的子查询进行交叉联接。例如(选择0 i联合选择1联合选择2联合选择3联合选择4联合选择5联合选择6联合选择7联合选择8联合选择9)。