select * from table where 1 and DATE_FORMAT(dateColumn,"%d-%m") BETWEEN "01-09" and "30-09"
此查询返回所有数据。我只想在这些日期之间的数据,而不考虑年份。根据月份和日期搜索数据Mysql
在表中dateColumn是yyyy-mm-dd。
select * from table where 1 and DATE_FORMAT(dateColumn,"%d-%m") BETWEEN "01-09" and "30-09"
此查询返回所有数据。我只想在这些日期之间的数据,而不考虑年份。根据月份和日期搜索数据Mysql
在表中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
试试这个:
SELECT *
FROM table
WHERE MONTH(dateColumn) = 9
您可以检查月份是否为9月
select * from table where DATE_FORMAT(dateColumn,"%m")
= '09
如果你想从你的表,其中的日期的月份是9月的一天是1至30行,你实际上可以做到这一点很容易和更明确的:
SELECT
*
FROM
table t
WHERE
MONTH(t.date) = 9 and
DAY(t.date) BETWEEN 1 and 30
这也是更容易理解。
日期过滤器不仅需要一个月。就像我想要的月份1到15之间的数据。 –
@DanishKundra。 。 。第一个查询应该做你想要的。 –