[英]Getting syntax error when using mysql DATE_FORMAT
我在数据库中使用mysql DATE_FORMAT
来表示特定的日期时间。 Mysql查询是:
$this->db->select('remarks_date, DATE('remarks_date') AS rem_dateonly, DATE_FORMAT('remarks_date', '%y-%m-%d %h:%i') AS day_hour_mins, DATE_FORMAT('remarks_date', '%y-%m-%d %h') AS day_hour, tbl_complain_detail.complain_summary, tbl_complain_detail.id, tbl_complain_detail.complain_no, tbl_complain_detail.created_by, escalation_status, tbl_admin_user.first_name, tbl_admin_user.middle_name, tbl_admin_user.last_name');
$this->db->where('tbl_complain_remarks.status', 'Time Extension');
$this->db->where('tbl_complain_detail.status !=', 'Completed');
$this->db->where('tbl_complain_detail.time_extension_status', '1');
$this->db->join('tbl_complain_remarks', 'tbl_complain_remarks.complain_id = tbl_complain_detail.id');
$this->db->join('tbl_admin_user', 'tbl_admin_user.id = tbl_complain_detail.user_id');
$result2 = $this->db->get('tbl_complain_detail')->result();
我在这里得到错误
PHP Parse error: syntax error, unexpected T_STRING in select line
并且它没有采取%
。 为什么?
难道我做错了什么? 任何帮助/建议将不胜感激。
您的问题是表中的别名。 要在表中使用别名,请使用``符号。 试试这个吧。
SELECT remarks_date AS rem_date_only, DATE_FORMAT(remarks_date, "%Y-%m-%d %H:%i") AS `day_hour_mins`, DATE_FORMAT(remarks_date, "%Y-%m-%d %H") AS `day_hour`, tbl_complain_detail.complain_summary, tbl_complain_detail.id, tbl_complain_detail.complain_no, tbl_complain_detail.created_by, escalation_status, tbl_admin_user.first_name, tbl_admin_user.middle_name, tbl_admin_user.last_name
FROM (`tbl_complain_detail`)
JOIN `tbl_complain_remarks` ON `tbl_complain_remarks`.`complain_id` = `tbl_complain_detail`.`id`
JOIN `tbl_admin_user` ON `tbl_admin_user`.`id` = `tbl_complain_detail`.`user_id`
WHERE `tbl_complain_remarks`.`status` = 'Time Extension'
AND `tbl_complain_detail`.`status` != 'Completed'
AND `tbl_complain_detail`.`time_extension_status` = '1'
您使用简单字符串的单引号。 对复杂字符串使用双引号。
$this->db->select("remarks_date, DATE(remarks_date) AS rem_dateonly, DATE_FORMAT(remarks_date, '%y-%m-%d %h:%i') AS day_hour_mins, DATE_FORMAT(remarks_date, '%y-%m-%d %h') AS day_hour, tbl_complain_detail.complain_summary, tbl_complain_detail.id, tbl_complain_detail.complain_no, tbl_complain_detail.created_by, escalation_status, tbl_admin_user.first_name, tbl_admin_user.middle_name, tbl_admin_user.last_name", false);
在select查询中指定列时,Mysql不支持'
单引号”,因此请使用此方法
DATE(`remarks_date`)
要么
DATE(remarks_date)
代替
DATE('remarks_date')
$this->db->select('remarks_date, DATE(`remarks_date`) AS rem_dateonly, DATE_FORMAT(`remarks_date`, "%y-%m-%d %h:%i") AS day_hour_mins, DATE_FORMAT(`remarks_date`, "%y-%m-%d %h") AS day_hour, tbl_complain_detail.complain_summary, tbl_complain_detail.id, tbl_complain_detail.complain_no, tbl_complain_detail.created_by, escalation_status, tbl_admin_user.first_name, tbl_admin_user.middle_name, tbl_admin_user.last_name');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.