【发布时间】:2018-02-03 01:12:29
【问题描述】:
我有一个日期范围列表,我想获得这些日期范围内所有月份的列表。我可以像这样查询我的日期范围:
Select id, start, end
From date_range
这个查询会给出以下输出:
1, 01-01-2016, 25-03-2016
2, 26-03-2016, 30-03-2016
3, 30-12-2016, 08-01-2017
现在我想找到一个 MySQL 查询,它只列出这些日期范围内的所有月份。所以它应该给出以下输出:
01-2016
02-2016
03-2016
12-2016
01-2017
这里已经有关于如何获取两个日期之间月份列表的示例,例如:
- Creating a list of month names between two dates in MySQL
- How to get a list of months between two dates in mysql
但这些示例是关于单个日期范围的,但我有多个日期范围。如果有人能找到我的问题的 sql 查询,那就太好了。
【问题讨论】:
-
你的问题有点混乱。您想要日期范围内的所有月份,还是只需要范围内每个开始/结束日期的月份/年份?
-
@Sloan:我希望所有月份都在日期范围内。因此,如果一个日期范围跨越 5 个月,则应显示所有 5 个月。
-
这确实是一个显示问题,因此,最好在应用程序代码中解决
-
你可以使用
distinct(month(date))
标签: mysql date date-range