2017-02-08 49 views
0

这里我插在表中的值是像如下仅提取年份和月份,需要从日期

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

我需要从仅提取年份和月份, 的,我用我的这样

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

我的$ date值码2017-01,当我给这样我得到错误这样 SELECT COUNT(*) AS numRows行FROM tbl_attendance WHERE tbl_attendance .个attendance_status = 1 AND tbl_attendance . USER_ID = '1' AND 1970年至1901年= '2017-01'

+0

请发布您收到的错误 –

+0

什么是您的表中的日期列名称? – rahulsm

+0

看到我已经发布了它.. –

回答

3

我相信你行

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

检查值与价值,

现在替换随你的函数,

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

试试看吧,它会工作。

+0

非常感谢兄弟 –

+0

不客气兄弟;) ! – rahulsm

0

首先,你需要的日期解析为YM格式,那么你可以使用此列条件

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

    $query='tbl_attendance.date_in'; 
    $this->db->select('tbl_attendance.*,DATE_FORMAT(tbl_attendance.date_in,"%Y-%m") as date_parse'); 
    $this->db->where('tbl_attendance.attendance_status', 1); 
    $this->db->where('tbl_attendance.user_id', $user_id); 
    $this->db->where('date_parse',date('Y-m',strtotime($date))); 

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

如果在运行这段代码时出现任何错误,请告诉我。我将修复它 –

+0

列名是date_in而不是date_parse,因为日期格式是表字段的Ymd – rahulsm

+0

是我知道那个日期列** tbl_attendance.date_in **我在做什么我将数据库日期* Ymd *格式化为* Ym *并存储在虚拟列* date_parse *中,然后设置该列上的条件 –