Codeigniter模型中的Mysql日期格式

Posted

技术标签:

【中文标题】Codeigniter模型中的Mysql日期格式【英文标题】:Mysql date format in codeigniter model 【发布时间】:2018-08-22 13:33:24 【问题描述】:

我在 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

【问题讨论】:

使用php日期格式date('Y-m-d', strtotime("your-date")); 【参考方案1】:

使用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'));

【讨论】:

SELECT EP.EMPLOYEE_ID, EP.EMPLOYEENAME, RD.RETAILER_CODE, RD.RETAILER_NAME, RD, @.@8 987654339 @。LOCALITYRDDISTRICTRDSTATERDPINCODERDMOBILE_NUMBERPPATCHRD CREATED_TS FROM PATIENT_PRIMARY 987654354 @ LEFT JOIN RETAILER_DETAILS 987654356 @ ON PPATIENT_CODE = RDPATIENT_CODE LEFT JOIN HHCL_EMPLOYEEMASTEREMPLOYEE_PRIMARY 987654363 @ ON P.CREATED_BY = EP.EMPLOYEE_ID 其中P.CREATED_BY 不在(7777) 和RD.MOBILE_NUMBER 不在(8985180306) 和2018-03-14 为空和@86543空 列名被日期覆盖 RD`.`CREATED_TS列中日期是如何写的?给我看例子 @SairamDuggi 立即查看 谢谢@Abulla Nilam【参考方案2】:

您应该使用 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);

如果我错了请评论。

【讨论】:

没有它的回报 NULL @Dhaval

以上是关于Codeigniter模型中的Mysql日期格式的主要内容,如果未能解决你的问题,请参考以下文章

在 CodeIgniter 中比较日期

在 CodeIgniter 中按日期过滤 MySQL 条目

Codeigniter - 使用日期格式将表记录导出为 CSV

使用时刻 js 将 mysql 日期中的组 concat 更改为印度尼西亚日期格式

在codeigniter mysql中格式化int datetime

如何使用 Codeigniter 将 JQuery datepicker 中的值插入 MySQL 日期数据类型?