[英]Mysql date format in codeigniter model
我在Codeigniter模型中将这种语法用于日期格式
$this->db->where(DATE_FORMAT(`RD`.`CREATED_TS =`,'%Y-%m-%d'), $from);
$this->db->where(DATE_FORMAT(`RD`.`CREATED_TS =`,'%Y-%m-%d'), $to);
但它返回此错误
Message: date_format() expects parameter 1 to be DateTimeInterface, string given
当执行查询时,查询返回如下CREATED_TS,由0表示,我如何为CREATED_TS分配名称
SELECT `EP`.`EMPLOYEE_ID`, `EP`.`EMPLOYEENAME`, `RD`.`RETAILER_CODE`, `RD`.`RETAILER_NAME`, `RD`.`AREA_NAME`, `RD`.`LOCALITY`, `RD`.`DISTRICT`, `RD`.`STATE`, `RD`.`PINCODE`, `RD`.`MOBILE_NUMBER`, `P`.`PATCH`, `RD`.`CREATED_TS` FROM `PATIENT_PRIMARY` `P` LEFT JOIN `RETAILER_DETAILS` `RD` ON `P`.`PATIENT_CODE` = `RD`.`PATIENT_CODE` LEFT JOIN `HHCL_EMPLOYEEMASTER`.`EMPLOYEE_PRIMARY` `EP` ON `P`.`CREATED_BY` = `EP`.`EMPLOYEE_ID` WHERE `P`.`CREATED_BY` NOT IN(7777) AND `RD`.`MOBILE_NUMBER` NOT IN(8985180306) AND 0 IS NULL AND 0 IS NULL
使用DATE_CREATE
格式化字符串日期将解决此问题
$this->db->where(DATE_FORMAT(DATE_CREATE(`RD`.`CREATED_TS`), 'Y-m-d'), $from);
$this->db->where(DATE_FORMAT(DATE_CREATE(`RD`.`CREATED_TS`), 'Y-m-d'), $to);
注意:这将在其中生成
=
,如果您想使用BETWEEN
,则应相应地>=
和<=
编辑01
$this->db->where("DATE(RD.CREATED_TS)", DATE_FORMAT(DATE_CREATE($from), 'Y-m-d'));
$this->db->where("DATE(RD.CREATED_TS)", DATE_FORMAT(DATE_CREATE($to), 'Y-m-d'));
您应该使用as声明RD.CREATED_TS ,并在DATE_FORMAT()函数中使用它们。
您应该这样做:
$this->db->select("RD.CREATED_TS as created_ts");
$this->db->where(DATE_FORMAT('created_ts','%Y-%m-%d'), $from);
$this->db->where(DATE_FORMAT('created_ts','%Y-%m-%d'), $to);
如果我错了,请发表评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.