Запрос построен с делением - PullRequest
0 голосов
/ 11 июля 2019

Мне нужно отправлять электронное письмо каждые 48 часов из поля даты и времени.Мой SQL-запрос:

select * from leads where datediff(NOW(),`level7_email_sent`)%2 = 0

Как мне это сделать с помощью CakePHP построителя запросов?Моя проблема в разделении.

Что я сделал:

        $leads = $this->Leads->find();
            //->contain([])
        $leads->where(function (QueryExpression $exp, Query $q) {
                $datediff = $q->func()->dateDiff([
                    'NOW()' => 'literal',
                    'level7_email_sent' => 'identifier'
                ]);
                return $exp->eq('engagement_level',7)->eq($datediff,7);
            });

Я не знаю, как сделать разделение, спасибо.

1 Ответ

0 голосов
/ 11 июля 2019

Я решил с помощью HAVING

    $leads = $this->Leads->find();
    //->contain([])
    $datediff = $leads->func()->dateDiff([
        'NOW()' => 'literal',
        'level8_email_sent' => 'identifier'
    ]);
    $leads->select(['dateDiff'=>$datediff])
        ->enableAutoFields(true)
        ->where(['engagement_level'=>7])
        ->having(['MOD(`dateDiff`,2)'=>0]);
...