首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找存储为varchar的两个datetime列之间的时间差。

问查找存储为varchar的两个datetime列之间的时间差。
EN

Stack Overflow用户
提问于 2013-08-28 18:04:59
回答 2查看 676关注 0票数 1

我有一个名为date_created的表列,其中我将日期时间值存储在VARCHAR中,例如16-06-2013 10:49:29

我想通过两个日期之间的mysql查询获得结果。我使用的查询如下:

代码语言:javascript
复制
... WHERE date_created BETWEEN '06-08-2013 22:30:18' AND '28-08-2013 22:30:22' ...

此查询返回结果,但该结果还包括每月between 06 and 28的旧日期记录。我也使用< and >,但这些也不起作用。

我如何才能得到只包括“06-08-2013 22:30:18”和“28-08-2013 22:30”之间的记录的结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-28 18:10:53

您可以使用MySQL-函数STR_TO_DATE将字符串格式化为日期时间。

代码语言:javascript
复制
SELECT STR_TO_DATE('06-08-2013 22:30:18', '%d-%m-%Y %H:%i:%s');
# 2013-08-06 22:30:18

我建议用一个更新将所有VARCHAR重新格式化为DATETIME,并修复代码。

票数 7
EN

Stack Overflow用户

发布于 2013-08-28 18:14:17

您需要使用STR_TO_DATE函数将日期字符串转换为可用于比较的日期。

代码语言:javascript
复制
STR_TO_DATE(date_created, '%d-%m-%Y %H:%i:%s') BETWEEN STR_TO_DATE('06-08-2013 22:30:18', '%d-%m-%Y %H:%i:%s') AND STR_TO_DATE('28-08-2013 22:30:22', '%d-%m-%Y %H:%i:%s')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18495134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档