我如何显示整个月的所有日期,其中月份是查询参数(例如 1 到 3 之间的月份),然后输出此查询将显示从 1 月的第一个日期到 3 月的最后一个日期的日期。也许像下面这样预览。
2013-01-01
2013-01-02
2013-01-03
..
..
2013-02-28
..
2013-03-31
对此有什么想法吗?感谢您的帮助
最佳答案
如果您已经有一个表,其中的条目数大于您需要的日期数,那么您可以使用这个:
SELECT adddate('2013-01-01', @rownum := @rownum + 1) dt FROM my_table
JOIN (SELECT @rownum := -1) r
LIMIT 31;
为my_table 选择一张小 table 。如果 my_table 包含太多条目,请使用限制使其更快。
其基础是使用像 rownum 这样的自动递增的计数器。使用日期函数进行过滤的更复杂的查询:
SELECT * FROM
(SELECT adddate('2013-01-01', @rownum := @rownum + 1) dt FROM my_table
JOIN (SELECT @rownum := -1) r LIMIT 1000) temp
WHERE MONTH(dt) = 1 AND YEAR(dt) = 2015;
关于MySQL显示整个月的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19537155/