select * from table where 1 and DATE_FORMAT(dateColumn,"%d-%m") BETWEEN "01-09" and "30-09"


该查询返回所有数据。我只想要这些日期之间的数据,而没有考虑年份。

在表中dateColumn是yyyy-mm-dd。

最佳答案

您需要以MM-DD而不是DD-MM的形式进行比较:

select *
from table
where DATE_FORMAT(dateColumn, '%m-%d') BETWEEN '09-01' and '09-30'


或者,对于这种情况,您可以执行以下操作:

where month(dateColumn) = 9

关于mysql - 根据月份和日期搜索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46195629/

10-09 22:21