myTable with events看起来像这样:
id | from_date | to_date
1 | 2014-10-01 | 2015-02-20
2 | 2014-08-25 | 2015-04-01
from_date和to_date是日期列 因为每年所有活动都是同一时间,因此年份并不重要。例如每年10-01到02-20之间。
我想今天选择所有活动,所以10-22
我尝试使用 DayOfYear ,但没有成功。
SELECT * FROM myTable WHERE DayOfYear('2014-10-22')
BETWEEN DayOfYear(`from_date`) AND DayOfYear(`to_date`)
BETWEEN 与date_format(from_date,'%m%d')也不起作用
任何帮助都会很棒!
答案 0 :(得分:1)
to_date
之后的from_date
出现在SELECT *
FROM myTable
WHERE (YEAR(from_date) = YEAR(to_date)
AND DAYOFYEAR('2014-10-22') BETWEEN DAYOFYEAR(from_date) AND DAYOFYEAR(to_date))
OR
(YEAR(from_date) != YEAR(to_date)
AND DAYOFYEAR('2014-10-22') NOT BETWEEN DAYOFYEAR(to_date) AND DAYOFYEAR(from_date))
之后,您需要撤销条件。
{{1}}