在转换为不同格式时自动用其他列的 DATETIME 填充列

Automatically fill column with DATETIME from other column while converting to different format

我在 MySQL 数据库中有一个 table,其中时间数据进入数据库(无法更改此格式)编码,以便当值转换为十六进制时,我得到格式中的时间yymmddhh 如:

538050839 = 20120117

我需要的是 '2020-12-01 17:00:00' 自动填充到 table 的 Time 列中,使用如下所示的创建语句

CREATE TABLE Example(SomeData INT ,SomeOtherData INT, TimeWrongFormat INT, Time DATETIME )

如何将数据转换为十六进制并将其格式化为日期?

CREATE TABLE IF NOT EXISTS Example (
    SomeData INT,
    SomeOtherData INT, 
    TimeWrongFormat INT, 
    TimeCorrectFormat DATETIME AS (STR_TO_DATE(CONV(TimeWrongFormat, 10, 16), '%y%c%d%H'))
);

DEMO

PS。 TimeWrongFormat 值格式必须严格匹配模式(即始终必须只包含日期和小时部分,而不包含 min/sec 部分)。如果它可能会有所不同,那么表达式必须更复杂。