总是得到错误试图详细说明sql查询到cakephp;这个怎么换?

7uhlpewt  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(133)

如果我在PHPMyAdmin(SQL)语句中使用下面的代码,它就可以工作,并且我会得到一个包含以下31天的所有生日的列表。

SELECT
    *
FROM
    membres 
WHERE
    DATE_ADD(
        date_de_naissance,
        INTERVAL
            YEAR(CURDATE()) -
            YEAR(date_de_naissance) +
            IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(date_de_naissance), 1, 0)
        YEAR
    )
    BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 31 DAY)
    AND
    (
        MONTH(date_de_naissance) <> MONTH(CURDATE())
        OR
        DAY(date_de_naissance) <> DAY(CURDATE())
    )

在Cakephp会怎样?请帮帮忙

hyrbngr7

hyrbngr71#

我通常发现在CakePHP中进行日期计算比在MySQL中容易得多,所以我会这样做:

$birthday_members = $this->Membres->find()
    ->where([
        'date_de_naissance >' => Cake\I18n\FrozenDate::now(),
        'date_de_naissance <=' => Cake\I18n\FrozenDate::now()->addDays(31),
    ]);

相关问题