首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql日期操作

Mysql日期操作
EN

Stack Overflow用户
提问于 2012-01-07 06:22:19
回答 1查看 100关注 0票数 1

我有一个包含不同日期的表,其中一个日期被分成3个字段: PassDay、PassMonth、PassYear。

我想将这些日期与另一个datetime orig_date进行比较,所以我所做的是

代码语言:javascript
复制
select `orig_date`, CONCAT_WS('-',`PassYear`,`PassMonth`,`PassDay`) as `pass_expiration` where `pass_expiration` < `orig_date`;

问题是月份被存储为一个月份名称(一月),而不是一个数字(01),因此我对pass_expiration的结果是2013-4月15日。

有没有办法直接从查询中把这个(2013-4-15)转换成一个常规的日期时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-07 06:26:18

你想要str_to_date

代码语言:javascript
复制
where STR_TO_DATE(CONCAT_WS('-',PassYear,PassMonth,PassDay),'%Y-%M-%d') < orig_date

另外,需要注意的是,不能在where子句中引用计算列。仅在order by子句中(where是用于从表中筛选结果的谓词;order by在计算列集之后运行)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8765243

复制
相关文章

相似问题

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