select * from table where 1 and DATE_FORMAT(dateColumn,"%d-%m") BETWEEN "01-09" and "30-09"
此查询返回所有数据。我只想要这些日期之间的数据,而不考虑年份。
在表格中,dateColumn是yyyy-mm-dd。
答案 0 :(得分:1)
您需要将比较视为MM-DD,而不是DD-MM:
select *
from table
where DATE_FORMAT(dateColumn, '%m-%d') BETWEEN '09-01' and '09-30'
或者,对于这种情况,您可以这样做:
where month(dateColumn) = 9
答案 1 :(得分:1)
试试这个:
SELECT *
FROM table
WHERE MONTH(dateColumn) = 9
答案 2 :(得分:0)
您可以查看月份是否为9月
select * from table where DATE_FORMAT(dateColumn,"%m")
= '09
答案 3 :(得分:0)
如果您希望表格中的行显示日期的月份为9且月份的日期介于1到30之间,那么您实际上可以更轻松,更明确地执行此操作:
SELECT
*
FROM
table t
WHERE
MONTH(t.date) = 9 and
DAY(t.date) BETWEEN 1 and 30
它也更容易理解。