mysql utcdate 字符串比较codeigniter

Posted

技术标签:

【中文标题】mysql utcdate 字符串比较codeigniter【英文标题】:mysql utcdate string comparison 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() 函数来将它们变成正确的日期 【参考方案1】:

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

【讨论】:

以上是关于mysql utcdate 字符串比较codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

使用PHP将数据表记录插入MYSQL数据库[重复]

SQL Server 本地时间和UTC时间的相互转换

MySQL中字符串比较大小(日期字符串比较问题)

hql日期和字符串的比较

MySQL中的UTF8字符串比较

如何比较 MySQL 中的版本字符串(“x.y.z”)?