我需要你的帮助 我需要在两个日期之间拉生日而不管年份 我使用以下查询
$sql = "SELECT * FROM family_member WHERE DATE_FORMAT(dob, '%c-%d') BETWEEN DATE_FORMAT('2013-".$from_month."-".$from_day."', '%c-%d') AND DATE_FORMAT('2013-".$to_month."-".$to_day."', '%c-%d') order by MONTH(dob), DAYOFMONTH(dob)";
如果我给出的话,查询效果很好 - 开始日期为11月6日& - 截止日期为12月13日
但是如果我给出,查询返回零记录 - 开始日期为9月6日& - 截止日期为12月13日
它适用于某些情况。你能否告诉我需要纠正的问题
答案 0 :(得分:2)
这是因为9月是第9个月," 09"和" 9"字符串不一样。使用%m
代替%c
修改强>
根据要求提供的一些解释:对于9月到12月的月份范围,您的比较范围是9-06
到12-06
。现在记住,这是一个字符串比较,例如10-25
不大于9-06
,这意味着BETWEEN
子句不会产生任何有意义的结果。如果您选择2位数月份,则最终会将09-06
与10-25
进行比较,这会按预期进行。