mysql选择没有表的日期

ste*_*yer 10 mysql

我只需要在一个月内返回所有日期的列表.我没有访问特定的表.所以如果给定2月份我需要一个sql select语句,返回以下内容:

Day
----
2011-02-01
2011-02-02
2011-02-03
... etc, etc. 
2011-02-27
2011-02-28
Run Code Online (Sandbox Code Playgroud)

这应该是相当简单的,我想,如果我知道我需要做的sql select语句.这个月应该是可选择的,我会从网页选择框传递它,让用户选择月份和年份.这将成为报告的基础.我已经有了一个select语句,它将花费每一天并对与这些日期相关的记录进行计数,但我需要此表作为我的报告的基础.

The*_*ter 17

我同意这些评论,这样的事情不应该在数据库中完成,但从技术上讲它是可能的.如果您给出开始日期和结束日期,则在必要时向子查询添加其他数字:

SELECT '2011-02-01' + INTERVAL a + b DAY dte
FROM
 (SELECT 0 a UNION SELECT 1 a UNION SELECT 2 UNION SELECT 3
    UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7
    UNION SELECT 8 UNION SELECT 9 ) d,
 (SELECT 0 b UNION SELECT 10 UNION SELECT 20 
    UNION SELECT 30 UNION SELECT 40) m
WHERE '2011-02-01' + INTERVAL a + b DAY  <  '2011-03-01'
ORDER BY a + b
Run Code Online (Sandbox Code Playgroud)

结果:

"2011-02-01"
"2011-02-02"
"2011-02-03"
....
"2011-02-28"
Run Code Online (Sandbox Code Playgroud)

  • 它工作得很好,我将提出更详细的另一个问题,看看是否有人有更好的方法这样做,但我使用的报告生成器采用单个SQL查询字符串,并返回一个html表,所以我可以'我真的每天循环遍历它,并用我的脚本语言进行多次查询.我必须在一个SQL查询中包含所有内容. (2认同)