我创建了一个名为TBL_NUMBERS的表
CREATE TABLE `TBL_NUMBER` (`n` int(11) NOT NULL)
并插入从1到1000的记录。现在,我可以使用此查询生成任何类型的日期范围:
SELECT '2012-06-21' + INTERVAL n-1 [DAY | HOUR | MINUTE] or as dateRange
FROM TBL_NUMBER
WHERE '2012-06-21' + INTERVAL n-1 [DAY | HOUR | MINUTE] <= '2012-06-23';
然后,我可以将此表与我的结果结合起来以填补日期空白。如果我需要超过1000个日期范围,我可以在中插入更多记录TBL_NUMBER
如果您有更好的主意,我很想知道;)