首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包含时区说明符的给定格式的Mysql字符串

包含时区说明符的给定格式的Mysql字符串
EN

Stack Overflow用户
提问于 2014-08-13 12:35:55
回答 1查看 1.6K关注 0票数 4

我的数据库中有一个字符串列,如

代码语言:javascript
运行
复制
Wed Aug 13 17:51:06 GMT+05:30 2014

到目前为止,我是否可以将其转换为where子句以获取记录?

代码语言:javascript
运行
复制
where
Timecolumn >( CURDATE()-7)

注意,时区说明符GMT+05:30位于日期时间字符串和四位数年份字符串之间。

我正在phpmyadmin中运行这个查询,但是我没有得到任何结果,而且它们确实存在。

代码语言:javascript
运行
复制
 SELECT * FROM `calldetails` WHERE STR_TO_DATE('date', '%a %b %d %H:%i:%s %x %Y')>(CURDATE()-7)

也是我在这里的专栏的名字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 13:20:03

使用substr()来删除时区数据。

另外,CURDATE() - 7应该是SUBDATE(CURDATE(), 7

代码语言:javascript
运行
复制
select
    concat(substr(str, 1, 19),substr(str, 30)) as str_sans_tz,
    str_to_date(concat(substr(str, 1, 19),substr(str, 30)),
      '%a %b %e %H:%i:%s %Y') date
from mytable

输出(分析前后):

代码语言:javascript
运行
复制
|              STR_SANS_TZ |                          DATE |
|--------------------------|-------------------------------|
| Wed Aug 13 17:51:06 2014 | August, 13 2014 17:51:06+0000 |

SQLFiddle

应用于查询:

代码语言:javascript
运行
复制
SELECT * FROM `calldetails`
WHERE str_to_date(concat(substr(`date`, 1, 19), substr(`date`, 30)), '%a %b %e %H:%i:%s %Y') > SUBDATE(CURDATE(), 7)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25286335

复制
相关文章

相似问题

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