首页 > 解决方案 > MySQL字符串日期时间转换

问题描述

当我将记录附加到目标表时,我需要转换源表中的字段。源表字段格式类似于 mm/dd/yyyy hh:mm:ss AM/PM,我需要将其转换为 yyyy-mm-ddThh:mm:ss。

例如,我的源表 LastModified 字段中的一条记录包含 1/18/2019 01:26:04 PM。我需要将其转换为目标表中的 2019-01-18T13:26:04 。

尝试同时使用 MySQL STR_TO_DATE() 和 DATE_FORMAT() 函数,但均未成功。

尝试了以下变化:

INSERT INTO target ( identification, LastModified )
SELECT identification, Date_format(LastModified, "%y-%c-%dt%h:%i:%s") AS LastModified 
FROM source;

INSERT INTO target ( identification, LastModified )
SELECT identification, Str_to_date(LastModified, "%y-%c-%dt%h:%i:%s") AS LastModified 
FROM source;

标签: mysqldatetime-format

解决方案


看起来你使用STR_TO_DATE()不正确。这应该有效:

INSERT INTO target ( identification, LastModified )
SELECT identification, Str_to_date(LastModified, "%c/%e/%Y %l:%i:%s %p") AS LastModified 
FROM source;

注意格式字符串:"%c/%e/%Y %l:%i:%s %p"


推荐阅读