2012-01-02 50 views
2

請問如何在Codeigniter的日期欄中編寫數據庫查詢來搜索月份?或者你能告訴我如何以codeigniter的方式編寫以下查詢嗎?如何編寫數據庫查詢在Codeigniter的日期字段中搜索月份?

感謝提前:)

"SELECT attendanceno FROM attendance WHERE (barcodeid = '$studentid') AND (month(attendancedate)='$month' AND year(attendancedate)='$year') "; 

編輯

感謝斯特凡,誰在下面回答我的問題。閱讀他的文章後,我也嘗試了下面的腳本,並發現它的工作。這就是爲什麼我只是想分享的情況下,任何人都想使用它。但所有功勞都歸功於斯蒂芬。 :)

$this->db->select('*'); 
    $this->db->from('attendance'); 
    $this->db->where('barcodeid', $studentid); 
    $this->db->where('month(attendancedate)', $month); 
    $this->db->where('year(attendancedate) ', $year); 
    $this->db->order_by('attendancedate ','ASC');  
    $getData = $this->db->get('', $perPage, $uri);       

回答

2

如果日期和月份都是字符串:

$this->db->query("SELECT attendanceno FROM attendance WHERE (barcodeid = ?) AND (month(attendancedate)=? AND year(attendancedate)=?)", array($studentid, $month,$year)); 

如果是整數

$this->db->query("SELECT attendanceno FROM attendance WHERE (barcodeid = ?) AND (MONTH(attendancedate)='?' AND YEAR(attendancedate)='?')", array($studentid, $month,$year)); 
+0

感謝您的答覆。請檢查我的問題的編輯部分。 – 2012-01-03 06:06:02

0

假設:

  • 笨2.2.0
  • 的Oracle數據庫11

    //Option 1, raw SQL 
    $sql = " 
        SELECT DISTINCT <DATE_COLUMN> 
        FROM <TABLE NAME> 
        WHERE 1=1 
        AND EXTRACT(month FROM <DATE_COLUMN>) = $month 
        AND EXTRACT(year FROM <DATE_COLUMN>) = $year 
    "; 
    $query = $this->db->query($sql); 
    
    //Option 2, CI db functions 
    $this->db->distinct(); 
    $this->db->select('<DATE_COLUMN>'); 
    $this->db->where('EXTRACT(month FROM <DATE_COLUMN>) =', $month); 
    $this->db->where('EXTRACT(year FROM <DATE_COLUMN>) =', $year); 
    $query = $this->db->get('<TABLE NAME>'); 
    

都將產生$個月以下= 3,$ =年2017年:

 CI_DB_oci8_result Object 
    (
     [stmt_id] => Resource id #9 
     [curs_id] => 
     [limit_used] => 
     [conn_id] => Resource id #1 
     [result_id] => 1 
     [result_array] => Array 
      (
       [0] => Array 
        (
         [<DATE_COLUMN>] => 22-MAR-17 
        ) 

       [1] => Array 
        (
         [<DATE_COLUMN>] => 14-MAR-17 
        ) 

       [2] => Array 
        (
         [<DATE_COLUMN>] => 02-MAR-17 
        ) 

       [3] => Array 
        (
         [<DATE_COLUMN>] => 06-MAR-17 
        ) 

      ) 

     [result_object] => Array 
      (
      ) 

     [custom_result_object] => Array 
      (
      ) 

     [current_row] => 0 
     [num_rows] => 4 
     [row_data] => 
    ) 
相關問題