【问题标题】:mysql utcdate string comparison codeignitermysql utcdate 字符串比较codeigniter
【发布时间】:2018-02-20 18:29:50
【问题描述】:

在 codeigniter 中有一个 MySQL 数据库,其中日期列采用这种格式

Mon, 12 Sep 2017 13:54:04 GMT.

我想获取过去一年的记录,即从 Mon, 12 Sep 2016 13:54:04 GMT 直到现在。 我正在尝试为它形成一个 where 子句,但不知道如何比较两个 utcdate 字符串。

我尝试使用 $this->db->where('DATE(created) >=',$_POST['duration']); 但它不起作用。 created 列中的所有值都采用上述格式。

【问题讨论】:

  • 这些日期保存在什么列数据类型中?
  • 它们是 TEXT 数据类型
  • 你的问题。日期和时间应始终保存在 DATE/DATETIME/TIMESTAMP 数据类型列中。然后在表示层中向用户展示他们想要的任何格式
  • 我理解那部分。它是一个旧项目。我正在其中添加一些功能。所以之前工作的开发人员已经存储了 js utcdatestrings,现在如果我更改数据库,这对我来说是一个巨大的工作量
  • 你将不得不在这些字符串上使用STR_TO_DATE() 函数来将它们变成正确的日期

标签: php mysql codeigniter date


【解决方案1】:

STR_TO_DATE(substr("Mon, 14 Aug 2017 13:54:04 GMT",1,25), "%a, %d %b %Y %H:%i:%S")。 对于其他寻找相同事物的人。 RiggsFolly 帮我回答了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    相关资源
    最近更新 更多