1

Cakephp で 1 年間隔でレコードを取得する必要があります。条件によって次のクエリを試してみましたが機能しtimeません。

$accept = $this->AssignListing->find('all',array('conditions' => array('AssignListing.writer_id' => $writer,'AssignListing.status' => 1, 'AssignListing.date_added > NOW( ) - INTERVAL 1 YEAR')));

4

3 に答える 3

1

これはあなたのために働くでしょう。

$accept = $this->AssignListing->find('all',array('conditions' => array('AssignListing.writer_id' => $writer,'AssignListing.status' => 1, 'AssignListing.date_added >=' => 'DATE_ADD(NOW( ), INTERVAL -1 YEAR')));
于 2012-08-06T09:01:44.967 に答える
1

この場合、次のほうが簡単ではありませんか。

$str_time = date('Y-m-d H:i:s', strtotime('-1 Year'));

$accept = $this->AssignListing->find('all',array('conditions' => array(
'AssignListing.writer_id' => $writer,
'AssignListing.status' => 1, 
'AssignListing.date_added >' => $str_time)));

そして、その値を比較しますか?可能であれば、PHP で計算を 1 回行い、MySQL ではなく解析します。

strtotime()
日付()

于 2012-08-06T08:45:52.620 に答える
1

これでうまくいくと思いますが、

$accept = $this->AssignListing->find('all',array('conditions' => array(
'AssignListing.writer_id' => $writer,
'AssignListing.status' => 1, 
array('AssignListing.date_added BETWEEN ? AND ?' => array(date('Y-m-d', strtotime("-1 Year")), date('Y-m-d'))))));
于 2012-08-06T08:59:09.463 に答える