需要将日期范围转换为 MySQL 中的多个日期条目

Posted

技术标签:

【中文标题】需要将日期范围转换为 MySQL 中的多个日期条目【英文标题】:Need to convert a date range to multiple date entry in MySQL 【发布时间】:2014-04-30 08:10:08 【问题描述】:

我有一个查询将插入特定日期范围。

INSERT INTO task (Task,Description,startdate,enddate) VALUES ('$Task', '$Description', '$start_date', '$end_date', );

但我需要根据开始日期和结束日期创建多个日期条目。例如,我选择 01-02-2014 作为开始日期,选择 10-02-2014 作为结束日期。它应该为从 01 到 10 的每个日期创建 10 个多个条目。

请帮忙解决一下

【问题讨论】:

我不知道一个快捷方式的 sql 查询答案,但是您可以创建多个使用迭代日期范围创建的 [批量插入语法] 查询。 【参考方案1】:

为了节省条目,也许您应该改为 选择 在数据处理阶段有什么介于两者之间的东西吗?

否则,最简单的解决方案是循环数天并插入 php 而不是 SQL。

【讨论】:

【参考方案2】:

试试

$dStart = new DateTime('01-02-2014');
   $dEnd  = new DateTime('10-02-2014');
   $dDiff = $dStart->diff($dEnd);
   for($i =1; $i<=$dDiff->d; $i++) 
    //increase your date here
    mysql_query("INSERT INTO task (Task,Description,startdate,enddate) VALUES ('$Task', '$Description', '$start_date', '$end_date'");

   

【讨论】:

但是我没有给出这样的日期,它取自输入字段。那该怎么办 必须是 01-02-2014 看起来像但是 m-d-y 或 d-m-y,y-m-d 从日期:  到日期:  日期将从这两个字段输入。根据输入日期,我需要创建多个条目

以上是关于需要将日期范围转换为 MySQL 中的多个日期条目的主要内容,如果未能解决你的问题,请参考以下文章

mysql选择范围内的日期时间对象

MySQL 或 MariaDB 将单行中的日期范围分散到多个行中

固定日期范围之间的 MySQL 记录

mysql日期范围查找(两个日期之间的记录)

MySQL 检查日期范围是不是在日期范围内

从 Postgres 中的非结束日期范围列表中查找未覆盖的日期范围