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'));
【讨论】:
SELECTEP
.EMPLOYEE_ID
, EP
.EMPLOYEENAME
, RD
.RETAILER_CODE
, RD
.RETAILER_NAME
, RD
, @.@8 987654339 @。LOCALITY
,RD
。DISTRICT
,RD
。STATE
,RD
。PINCODE
,RD
。MOBILE_NUMBER
,P
。PATCH
,RD
CREATED_TS
FROM PATIENT_PRIMARY
987654354 @ LEFT JOIN RETAILER_DETAILS
987654356 @ ON P
。PATIENT_CODE
= RD
。PATIENT_CODE
LEFT JOIN HHCL_EMPLOYEEMASTER
。EMPLOYEE_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 - 使用日期格式将表记录导出为 CSV
使用时刻 js 将 mysql 日期中的组 concat 更改为印度尼西亚日期格式