MySQL显示整个月的所有日期

标签 mysql date

我如何显示整个月的所有日期,其中月份是查询参数(例如 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/

相关文章:

mysql - 加入三个表期待结果但结果是错误的

php - 如果 laravel eloquent 中请求变量为 null,则不要更改 mysql 列值

string - QTP - 控制日期是否晚于另一个日期

java - UTC 时区未检测夏令时

JavaScript 天数计算

mysql - 从 Select max() 查询中获取正确的行结果

php - 在 PHP 和 mysql 中调试的最佳方法

mysql - 当月、日、小时或分钟为 8 或 9 时,INSERT TIMESTAMP 或 DATETIME 失败

java - 在随机字符串内使用正则表达式匹配日期

Java日期计算