我在AS400中有一个奇怪的日期格式,我需要转换为Oracle日期格式(即dd-mm-yyyy).Below是存储在AS400中的日期。
101
820101
820101
820101
820101
820101
820101
820101
10728
820101
820101
820101
820101
答案 0 :(得分:3)
也许您的日期存储为某种数字数据类型?在将相应的字符串转换为日期之前,只需使用0
左键填充数据即可解决您的问题。
因此,如果您需要将数据转换为DATE
类型,则需要编写:
CREATE TABLE T2 AS
SELECT TO_DATE(LPAD("AS_DATE", 6, '0'), 'RRMMDD') ORACLE_DATE FROM T;
-- ^^^^^^^^^^^^^^^^^^^^^^
-- left pad missing '0'
-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-- convert to date with the correct format (I assume)
请注意RR
格式,该格式将用于映射1950年至2049年范围内的2位数年份
即使我无法鼓励这种情况,如果由于某种原因你需要将日期存储为格式为dd-mm-yyyy
的字符串,你会写出类似的东西:
CREATE TABLE T3 AS
SELECT TO_CHAR(TO_DATE(LPAD("AS_DATE", 6, '0'), 'RRMMDD'), 'DD-MM-YYYY') STRING_DATE FROM T;