首页 > 解决方案 > 如何格式化这种日期?

问题描述

如何以这种样式格式化日期:Sun Aug 11 00:54:13 BRT 2019

我有一个表格,在列中使用这种格式的日期,我想像在另一个表格中varchar一样插入。datetime

我试过了:

select date_format('Sun Aug 11 00:54:13 BRT 2019', '%Y-%m-%d %H:%i:%s');

用于测试,但它返回NULL.

还有,这种风格有名字吗?

标签: mysqlsqldatetime

解决方案


似乎您需要将字符串转换为日期。您可以STR_TO_DATE()用于此目的。

考虑:

SELECT STR_TO_DATE(
    'Sun Aug 11 00:54:13 BRT 2019',
     '%a %b %e %H:%i:%S BRT %Y'
);

产量:

2019-08-11 00:54:13

DB Fiddle 上的演示

注意:

  • 从您的示例数据中,无法判断月份中的日期是存储为0..31(specifier %e) 还是存储为 ( 00..31specifier %d)
  • 我把时区分开了

推荐阅读