如果是直接使用TO_DATE的话,那么转换后的结果是TIMESTAMPA类型而不是DATE类型
如果要转成DATE类型的话,那么可以首先使用TIMESTAMP类型,然后取DATE
SELECT DATE(TO_DATE('20221012','YYYY-MM-DD') FROM DUAL;
这样得到的结果就是’2022-10-12’
如果我们希望传进入8为的日期字符串,得到10位的日期字符串的话,那么可以采用拼接的方式进行
SELECT SUBSTR('YYYYMMDD', 1, 4) || '-' || SUBSTR('YYYYMMDD', 5, 2) || '-' || SUBSTR('YYYYMMDD', 7, 2) AS CONVERTED_DATE
FROM SYSIBM.SYSDUMMY1;
对于字符串格式的转换
如果是下述这种方式是不可以执行的:
TO_CHAR('20230509;,'YYYY-MM-DD'
如果是这样的转换则是可以执行的
TO_CHAR('2023-05-09;,'YYYYMMDD'
所以如果希望达到第一种转换的效果,还是采取先前提到的拼接的方式。