我有一个与数据连接到日期的mysql表。每行都有数据和日期,如下所示:
2009-06-25 75 2009-07-01 100 2009-07-02 120 我有一个mysql查询,它选择两个日期之间的所有数据。这是查询:
SELECT data FROM tbl WHERE date BETWEEN date1 AND date2
我的问题是,即使一天没有数据,我也需要获取date1和date2之间的行。
因此,我的查询将错过在2009-06-25和2009-07-01之间为空的日期。
我可以以某种方式添加这些仅包含0的日期作为数据吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您可以使用经常被称为“日历表”的概念。这是有关如何在MySql中创建日历表的良好指南:
-- create some infrastructure CREATE TABLE ints (i INTEGER); INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
-- only works for 100 days, add more ints joins for more SELECT cal.date, tbl.data FROM ( SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date FROM ints a JOIN ints b ORDER BY a.i * 10 + b.i ) cal LEFT JOIN tbl ON cal.date = tbl.date WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01'; 您可能要创建表cal而不是子选择。来源:stack overflow