原数据
使用TO_CHAR
TO_CHAR(
TO_DATE(CREATE_DATE, 'YYYYMMDD') +
(
TO_NUMBER(SUBSTR(CREATE_TIME,1,2)) * INTERVAL '1' HOUR +
TO_NUMBER(SUBSTR(CREATE_TIME,3,2)) * INTERVAL '1' MINUTE +
TO_NUMBER(SUBSTR(CREATE_TIME,5,2)) * INTERVAL '1' SECOND
),
'YYYY-MM-DD HH24:MI:SS'
) AS CREATE_DATE_TIME
解释
TO_DATE(CREATE_DATE, 'YYYYMMDD'):
TO_DATE函数将CREATE_DATE从YYYYMMDD的格式转换为日期格式。
TO_NUMBER(SUBSTR(CREATE_TIME,1,2)) * INTERVAL '1' HOUR:
SUBSTR(CREATE_TIME,1,2)提取CREATE_TIME中的小时部分,并使用TO_NUMBER将其转换为数字。
INTERVAL '1' HOUR将数字小时转换为Oracle的时间间隔类型。
TO_NUMBER(SUBSTR(CREATE_TIME,3,2)) * INTERVAL '1' MINUTE:
SUBSTR(CREATE_TIME,3,2)提取CREATE_TIME中的分钟部分,并使用TO_NUMBER将其转换为数字。
INTERVAL '1' MINUTE将数字分钟转换为Oracle的时间间隔类型。
TO_NUMBER(SUBSTR(CREATE_TIME,5,2)) * INTERVAL '1' SECOND:
SUBSTR(CREATE_TIME,5,2)提取CREATE_TIME中的秒部分,并使用TO_NUMBER将其转换为数字。
INTERVAL '1' SECOND将数字秒转换为Oracle的时间间隔类型。
TO_DATE(...) + ... + ... + ...:
将上述转换的时间间隔相加,得到完整的日期时间。
TO_CHAR(..., 'YYYY-MM-DD HH24:MI:SS'):
使用TO_CHAR函数将上述得到的日期时间格式化为YYYY-MM-DD HH24:MI:SS的格式。
最终,AS CREATE_DATE_TIME将这个格式化后的日期时间列命名为CREATE_DATE_TIME。