Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL显示介于范围之间的所有日期_Mysql_Date_Range - Fatal编程技术网

MySQL显示介于范围之间的所有日期

MySQL显示介于范围之间的所有日期,mysql,date,range,Mysql,Date,Range,我想显示MySQL中from和to日期之间的所有日期 例如,具有from和to字段的明细表中的数据为: 起始日期为2013年3月13日,以及 截至2013年3月20日 "SELECT * FROM schedule WHERE Field BETWEEN $fromdate AND $todate"; 我期望的结果是: 2013-3-13 2013-3-14 2013-3-15 2013-3-16 2013-3-17 2013-3-18 2013-3-19 2013-3-20

我想显示MySQL中from和to日期之间的所有日期

例如,具有from和to字段的明细表中的数据为:

起始日期为2013年3月13日,以及

截至2013年3月20日

"SELECT * FROM schedule WHERE Field BETWEEN $fromdate AND $todate";
我期望的结果是:

 2013-3-13
 2013-3-14
 2013-3-15
 2013-3-16
 2013-3-17
 2013-3-18
 2013-3-19
 2013-3-20
因为我不熟悉存储过程,所以我如何仅使用MySQL查询而不必使用存储过程来实现这一点

编辑:

这是非常有帮助的,尽管我仍然没有完全得到想要的。在中,它只成功运行,但不输出任何内容。我不知道是什么问题


请帮忙。谢谢

尝试从2013年3月13日开始,到2013年3月20日结束

"SELECT * FROM schedule WHERE Field BETWEEN $fromdate AND $todate";

您可以使用以下命令生成日期列表:

select a.Date,  s.*
from 
(
  select curdate() + INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
  from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
  cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
  cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
inner join schedule s
  on a.Date >= s.fromDate 
  and a.Date <= s.toDate

请参见

此日期是否存在于数据库中,或者您希望填补日期之间的空白?仅存在从和到的日期。中间的日期不是,所以我想填补空白。好的,这里有一篇很好的文章来填补日期基本上是创建一个日历。有没有更简单的方法呢?我的意思是不添加MySQL过程?@BlueFoots,公认的答案很好。但是,当我将日期更改为2013-3-1和2013-3-13时,输出范围仅为2013-3-1到2013-3-5。我如何将另一个查询与此代码合并?从预订中选择代码?谢谢。@xjshiya请发布一个新问题,其中包含新问题的详细信息。这将比在评论中来回走动容易得多-1他不希望打印两个日期之间的所有行,而是希望打印给定两个日期之间的所有日期。