2013-04-25 100 views
-2

如何获得最后两天的记录是我的查询但出现错误。检索最近两天的记录

function getbdologHistoryByRefManuals($obj) 
{ 
    $this->db->select('bdo_logs.*,transaction_statuses.status'); 
    $this->db->from('bdo_logs'); 
    $this->db->join('transactions','transactions.id=bdo_logs.id'); 
    $this->db->join('transaction_statuses','transaction_statuses.id=transactions.trans_status_id'); 
    $this->db->where('log_date >', ADDDATE(CURDATE() , INTERVAL -2 DAY)); 

    $query = $this->db->get(); 

    //echo $this->db->last_query(); 
    if($query->num_rows() == 0){ 
     return null; 
    } 

      return $query->result(); 
} 
+0

你最近两天的记录是什么意思? – 2013-04-25 07:06:14

+1

什么是错误? – 2013-04-25 07:14:06

+0

这意味着我想要两天的记录意味着今天和昨天的记录 – 2013-04-25 07:16:03

回答

2
function getbdologHistoryByRefManuals($obj) 
{ 
    $this->db->select('bdo_logs.*,transaction_statuses.status'); 
    $this->db->from('bdo_logs'); 
    $this->db->join('transactions','transactions.id=bdo_logs.id'); 
    $this->db->join('transaction_statuses','transaction_statuses.id=transactions.trans_status_id'); 
    $this->db->where('DATE(log_date) >', 'ADDDATE(CURDATE() , INTERVAL -2 DAY)'); 

    $query = $this->db->get(); 

    if($query->num_rows() == 0){ 
     return null; 
    } 

    return $query->result(); 
} 

你缺少包裹在where子句

编辑ADDDATE功能:
或者你也可以这样调用

$query =" SELECT 
       bdo_logs.*, 
       transaction_statuses.status 
      FROM bdo_logs 
      JOIN transactions 
       ON transactions.id = bdo_logs.id 
      JOIN transaction_statuses 
       ON transaction_statuses.id = transactions.trans_status_id 
      WHERE DATE(log_date) > ADDDATE(CURDATE() , INTERVAL -2 DAY)"; 
$result = $this->db->query($query); 
+0

我想最近两天的记录不是最后两条记录。 – 2013-04-25 07:12:18

+0

@MichealScofield我已经更新了答案。 – 2013-04-25 07:15:48

+1

没有它的工作 – 2013-04-25 07:19:10

2

简单的方法:

$today = date('Y-m-d'); 
$newdate = date('Y-m-d', strtotime("-2 days")); 
echo $today; 
echo '<br />'; 
echo $newdate; 

现在,把$newdate在哪里条件。