Issue
I need to send an email every 48 hours from a datetime field. My sql query is:
select * from leads where datediff(NOW(),`level7_email_sent`)%2 = 0
How I do it with CakePHP query builder? My problem is division.
Whats I done is:
$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);
});
I don't know how to do the division, thanks.
Solution
I solved using 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]);
Answered By - Igor
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.