【问题标题】:Mysql date format in codeigniter modelCodeigniter模型中的Mysql日期格式
【发布时间】: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"));

标签: php mysql codeigniter date codeigniter-3


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2017-12-17
  • 2012-06-19
  • 1970-01-01
相关资源
最近更新 更多