dtqysxw4659 2017-02-08 07:22
浏览 21
已采纳

需要从该日期起仅提取年份和月份

Here my value inserted in to the table is like as follows,

`2017-01-01`,
`2017-01-02`,
`2017-01-03`,
`2017-01-04`,
`2017-01-05`,
`2017-01-06`. 

i need to fetch only year and month from that, for that i used my code like this

public function present_report_by_empid($user_id = null,$date = null) 
 {

    $query='tbl_attendance.date_in';
    $this->db->where('tbl_attendance.attendance_status', 1);
    $this->db->where('tbl_attendance.user_id', $user_id);
    $this->db->where(date('Y-m',strtotime($query)), $date);

    return $this->db->count_all_results('tbl_attendance');
}

My $date value is 2017-01 and when i gave like this am getting error like this SELECT COUNT(*) ASnumrowsFROMtbl_attendanceWHEREtbl_attendance.attendance_status= 1 ANDtbl_attendance.user_id= '1' AND1970-01= '2017-01'

  • 写回答

2条回答 默认 最新

  • dongyi2534 2017-02-08 07:33
    关注

    I believe you have error in line

    $this->db->where(date('Y-m',strtotime($query)), $date);
    

    checking value with value,

    For now replace your function with this,

    public function present_report_by_empid($user_id = null,$date = null) 
     {
        $temp = explode("-",$date);
        $query='tbl_attendance.date_in';
        $this->db->where('tbl_attendance.attendance_status', 1);
        $this->db->where('tbl_attendance.user_id', $user_id);
        $this->db->where("YEAR(tbl_attendance.date_in)",$temp[0]);
        $this->db->where("MONTH(tbl_attendance.date_in)",$temp[1]);
        return $this->db->count_all_results('tbl_attendance');
    }
    

    Give it a try, it will work.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?