我需要选择两个给定日期(例如,11月10日和1月25日)之间的所有条目,而不考虑年份。
如果是1月25日和11月10日就好了。但是,如何构造查询以查找11月10日到1月25日之间的所有数据?
最佳答案
您可以使用MySQL的DAYOFYEAR()
函数:
DAYOFYEAR(field) BETWEEN DAYOFYEAR(A) AND DAYOFYEAR(B)
如果
DAYOFYEAR(A)>DAYOFYEAR(B)
则应用程序需要用BETWEEN
替换NOT BETWEEN
或交换参数的顺序。如果需要在SQL中执行此操作:DAYOFYEAR(field) BETWEEN
LEAST(DAYOFYEAR(A), DAYOFYEAR(B)) AND GREATEST(DAYOFYEAR(A), DAYOFYEAR(B))
注意闰年,因为
DAYOFYEAR()
函数将考虑这些