【发布时间】:2018-01-30 19:47:29
【问题描述】:
我在 MySQL 查询中有一部分需要选择上个月的记录,而不是过去 30 天的记录
例如,如果当前月份是 1 月,那么我需要有上个月的记录,即 12 月,但它应该只显示 2017 年 12 月的记录,不包括往年的记录。
我目前正在使用以下 SQL 部分。
$sql .= " AND MONTH(checkup_date) = MONTH(NOW() - INTERVAL 1 MONTH)";
它显示了数据库中所有 12 月的记录,即 2017 年 12 月、2016 年 12 月等。
我什至尝试了以下
$sql .= " YEAR(checkup_date) AND MONTH(checkup_date) = MONTH(NOW() - INTERVAL 1 MONTH)";
但仅当上个月不早于一月时才有效 即如果当前月份是 2 月,它将起作用,所以上个月将是 1 月,年份将是 2018 年
但在我的情况下,当前月份是一月,所以上个月是十二月,但这里的年份是 2018 年,所以它不是也不会显示任何记录。
所以请大家帮我修复这个查询,以便我可以得到最后一年,以防当前月份是一月,而在另一种情况下,年份仍然是当前年份。
感谢您帮助解决问题。
【问题讨论】: