【发布时间】:2014-02-14 22:37:08
【问题描述】:
我正在尝试选择从上个月到未来所有月份的所有数据..例如,我想选择数据库中从一月到未来任何可用日期的所有数据,这样就可以了对于任何月份.. 选择上个月直到今年的未来月份
这是我的查询,它只从 2 月开始,我怎样才能让它从上个月开始 .. 当前月份 - 1 不起作用
SELECT *
FROM events
WHERE YEAR(event_start_date) = YEAR(CURDATE())
AND MONTH(event_start_date) = MONTH(CURDATE())
【问题讨论】:
-
你的意思是在开始日期和结束日期之间?
-
为了获得最佳性能,我们更喜欢在
event_start_date裸列上使用谓词;这将允许索引范围扫描(如果有适当的索引可用),而不是让 MySQL 评估表中的每一行。 “技巧”提出了一个使用当前日期时间并返回上个月第一天的表达式,例如event_start_date >= DATE_FORMAT(NOW()+INTERVAL -1 MONTH,'%Y-%m-01')