在转换为不同格式时自动用其他列的 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'))
);
PS。 TimeWrongFormat
值格式必须严格匹配模式(即始终必须只包含日期和小时部分,而不包含 min/sec 部分)。如果它可能会有所不同,那么表达式必须更复杂。
我在 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'))
);
PS。 TimeWrongFormat
值格式必须严格匹配模式(即始终必须只包含日期和小时部分,而不包含 min/sec 部分)。如果它可能会有所不同,那么表达式必须更复杂。