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

时间:2013-03-04 15:14:03

标签: 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');
...

我需要在2013-05-07之间为每一天插入一行,例如1000天。

2 个答案:

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

依赖于一个名为整数的表,其中一列名为i,有10行,值为0到9。

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

答案 1 :(得分: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做到这一点;)

我给你这样做。

Saludos;)