我正在使用INSERT INTO ... SELECT查询从TABLE1中选择一些字段值,并将这些值填充到TABLE2中。 TABLE1有一列 ENDDATE,其类型为VARCHAR2(64 BYTE),我正尝试将该数据插入表2中名为ENDDATE的另一列中,其中 ENDDATE为DATE类型 。 因此,很明显,当我运行查询时,我遇到了异常
ORA-01861: literal does not match format string; nested exception is java.sql.SQLDataException
我尝试过的事情:
试图使用CAST(CONVERT(VARCHAR(10), a.ENDDATE, 121)) AS ENDDATE_TEMP
将String类型转换为Date。为此,我收到缺少表达式错误。
试图使用TO_DATE ()
函数,但收到未知命令错误。我使用的是Oracle 12c版本,我相信TO_ DATE适用于12c。但是仍然无法使其正常工作。
表1的示例数据。ENDDATE:20190229 [YYYYMMDD]。
TABLE2.ENDDATE中的数据应存储为:2019年2月29日
我正在使用TO_DATE('20190229','YYYYMMDD')
将字符串转换为DATE。
任何人都可以帮助我如何在查询的SELECT部分内转换ENDDATE。这种情况下最好的选择!
我还使用ENDDATE值作为查询末尾的条件,例如WHERE ENDDATE IS NOT NULL。抱歉,由于某些规定,我无法发布代码段。