gpt4 book ai didi

Php MySql 日期之间的生日查询忽略年份

转载 作者:行者123 更新时间:2023-11-29 08:25:58 26 4
gpt4 key购买 nike

我正在尝试从数据库中获取即将到来的生日,以便我可以为这些客户创建邮件列表。$pet_bdate - 管理员使用 JQuery 日期选择器以 dateFormat: 'yy-mm-dd' 格式提供日期。$plus_days - 他还可以选择日期范围 - 加上所选日期的 0 到 14 天。

服务器配置:PHP 版本 5.2.17MySQL 版本 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 计算日期时,我有点困惑。

关于如何解决这个问题有什么建议吗?

最佳答案

尝试使用 DAYOFYEAR 而不是字符串比较。

更新:我还需要补充一点,您的日期应该用冒号括起来才能正常工作“2004-04-15”。

关于Php MySql 日期之间的生日查询忽略年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com