我正在尝试从数据库中获取即将到来的生日,以便为这些客户创建一个邮件列表。 $pet_bdate - 管理员使用 JQuery datepicker 以 dateFormat: 'yy-mm-dd' 格式提供日期。 $plus_days - 他还可以从 0 到 14 中选择日期范围 - 加上所选日期的天数。
服务器配置:Php v 5.2.17 MySQL v 5.5.23(所以几个更高级的 Php 功能不如 MySql 好用)
列petbday的类型是DATE。
这是查询:
SELECT * FROM `customer` c LEFT JOIN `pet` p ON (c.customer_id = p.customer_id)
WHERE (DATE_FORMAT(p.petbday, '%m-%d')
BETWEEN DATE_FORMAT(2014-04-13, '%m-%d') AND DATE_FORMAT(DATE_ADD(2014-04-13, INTERVAL 7 DAY), '%m-%d'))
GROUP BY c.customer_id ORDER BY firstname, lastname, email
这是实现它的 PHP 代码:
SELECT * FROM `" . DB_PREFIX . "customer` c LEFT JOIN `" . DB_PREFIX . "pet` p ON (c.customer_id = p.customer_id)
WHERE (DATE_FORMAT(p.petbday, '%m-%d') BETWEEN DATE_FORMAT(" . $pet_bdate . ", '%m-%d') AND DATE_FORMAT(DATE_ADD(" . $pet_bdate . ", INTERVAL " . $plus_days . " DAY), '%m-%d')) GROUP BY c.customer_id ORDER BY firstname, lastname, email
此查询为数据库中具有生日的日期返回零行。
如何将格式化的日期交给查询以便忽略年份?
我尝试在将其提交给查询之前对其进行格式化,但是在使用 Php 计算日期时,我有点搞混了。
关于如何解决这个问题的任何建议?