首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新MySQL中的日期以包含前导零

更新MySQL中的日期以包含前导零
EN

Stack Overflow用户
提问于 2017-08-22 13:45:05
回答 2查看 595关注 0票数 2

假设我在表col1中有一个列tab1,它具有以下混合格式日期:

代码语言:javascript
复制
2015-03-03
2015-02-03
2017-3-6
2015-03-04
2017-11-6

什么是一个好的MySQL查询来更新这个列到更一致的内容,所以所有的日期都包含前导零。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-22 13:55:31

您应该首先将这些存储为日期字段,但无论如何,下面是您的查询

代码语言:javascript
复制
UPDATE `tab1` SET `col1` = DATE(`col1`);
票数 4
EN

Stack Overflow用户

发布于 2017-08-22 14:00:30

作为一个免责声明,为了避开那些今天打了我6次的选民,你应该储存你的约会对象as...dates,而不是文本。尽管如此,如果您有大量这种格式的文本数据,则可以使用MySQL的string函数轻松地将其转换为日期。月份和日字段可能是一位数,也可能是两位数,需要用零填充。然后,使用带有适当格式掩码的STR_TO_DATE将标准化的日期文本带到真正的日期。

尝试以下查询:

代码语言:javascript
复制
SELECT
    STR_TO_DATE(CONCAT(SUBSTRING_INDEX(col1, '-', 1),
                    LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(col1, '-', 2), '-', -1), 2, '0'),
                    LPAD(SUBSTRING_INDEX(col1, '-', -1), 2, '0')), '%Y%m%d') AS new_date
FROM yourTable;

如果要更新表中的新列,几乎可以逐字重用上述逻辑,只需执行UPDATE而不是SELECT

输出:

演示这里:

Rextester

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

https://stackoverflow.com/questions/45819403

复制
相关文章

相似问题

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