如何在CakePHP3.x中使用INTERVAL
我使用的是CakePHP3.x。我已经使用如何在CakePHP3.x中使用INTERVAL,cakephp,intervals,cakephp-3.x,Cakephp,Intervals,Cakephp 3.x,我使用的是CakePHP3.x。我已经使用strotime(date('Y/m/dh:I',time())将我的所有日期转换并存储为字符串。在DB中,它将像这样存储1479466560,但现在我需要选择14天前的行。我试着在下面的条件下 $this->loadModel('Users'); $userList = $this->Users->find('all') ->select(['created']) ->where(['status' =&g
strotime(date('Y/m/dh:I',time())将我的所有日期转换并存储为字符串代码>。在DB中,它将像这样存储1479466560,但现在我需要选择14天前的行。我试着在下面的条件下
$this->loadModel('Users');
$userList = $this->Users->find('all')
->select(['created'])
->where(['status' => 1,'created' => 'created + INTERVAL 14 DAY > NOW()']);
它只返回空行。怎么做?。谁能帮帮我 我知道这并没有告诉您如何使用interval
,但它确实解决了问题
我过去所做的是将php变量与一个简单的=
modify(“-12小时”);
$this->Model->find()
->其中(['created>='=>$date])
->andWhere(['created<'=>$cur_date]);
这有效地使用了一个间隔。它还可以很好地动态编辑。您的查询与从
用户
表中创建的任何日期都不匹配
您的CakePHP3查询在SQL下生成:
SELECT created FROM users WHERE (status = 1 AND created = created + INTERVAL 14 DAY > NOW())
注意:首先尝试从您的phpmyadmin
中调整上述查询
您可以在下面的SQL中尝试INTERVAL
test
SELECT '2016-01-17 10:57:21' + INTERVAL 14 DAY > NOW();
或
SELECT '2016-01-17 10:57:21' + INTERVAL 14 DAY;
注意:根据需要调整日期字符串。现在,您可以看到您所做的错误之处
SELECT '2016-01-17 10:57:21' + INTERVAL 14 DAY;