只需要从日期获取年份和月份
Posted
技术标签:
【中文标题】只需要从日期获取年份和月份【英文标题】:Need to fetch only year and month from the date 【发布时间】:2017-06-25 17:02:44 【问题描述】:这里我插入到表中的值如下,
`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
numrowsFROM
tbl_attendanceWHERE
tbl_attendance.
attendance_status= 1 AND
tbl_attendance.
user_id= '1' AND
1970-01= '2017-01'
【问题讨论】:
请发布您遇到的错误 表格中的日期列名是什么? 看到我已经发布了.. date_in ?你在说什么? yaa...当然date_in
【参考方案1】:
我相信你有错误
$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');
试一试,会成功的。
【讨论】:
【参考方案2】:首先您需要将日期解析为Y-m格式,然后您可以将此列用作条件
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');
【讨论】:
如果在运行此代码时出现任何错误,请告诉我。我会修复它 列名是 date_in 而不是 date_parse 并且它仍然不起作用,因为日期格式是表字段的 Y-m-d 是的,我知道日期列 tbl_attendance.date_in 我在做什么我正在将数据库日期 Ymd 格式化为 Ym 并存储在虚拟列 date_parse 中,然后在该列上设置条件 尝试使用$this->db->last_query()
调试您从代码中获取的查询并在此处发布
伙计,我不是 OP :D以上是关于只需要从日期获取年份和月份的主要内容,如果未能解决你的问题,请参考以下文章