我需要进行查询并与一年中的所有日子一起加入,但是在我的数据库中没有日历表。 谷歌搜索后,我generate_series()在PostgreSQL中找到了。MySQL有类似的东西吗?
我的实际表有这样的东西:
date qty 1-1-11 3 1-1-11 4 4-1-11 2 6-1-11 5 但是我的查询必须返回:
1-1-11 7 2-1-11 0 3-1-11 0 4-1-11 2 and so on ..
这就是我的方法。它创建了从2011-01-01到2011-12-31的日期范围:
select date_format( adddate('2011-1-1', @num:=@num+1), '%Y-%m-%d' ) date from any_table,
(select @num:=-1) num limit 365
-- use limit 366 for leap years if you're putting this in production 唯一的要求是any_table中的行数应大于或等于所需范围的大小(在此示例中,> = 365行)。您很可能会将其用作整个查询的子查询,因此,在这种情况下,any_table可以是该查询中使用的表之一。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。