2012-08-06 112 views
1

我需要在cakephp中的一年间隔内抓取记录。我试着用time以下查询条件不起作用。在cakephp中获取当前年份的mysql记录

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

回答

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'))); 
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中进行一次计算并解析它,而不是在MySQL中。

strtotime()
date()

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'))))));