我之前问过关于将字符串转换为日期并对其进行格式化.. 根据 ORACLE 11g SQL 中的字符位置拆分字符串
这是我提出的解决方案,其中 WKENDING 是 VARCHAR2,RYEAR 是日期 WKENDING 的数据看起来像“523”(mmdd),而 RYEAR 是“2012”。
UPDATE OB_SEL_LST84_AGG_WKEND SET WKENDYEAR = (TO_DATE((TO_DATE(substr(WKENDING,3,2)),'dd')||(TO_DATE(substr(WKENDING,0,1)),'mon')||(TO_DATE(TO_CHAR(RYEAR)),'yyyy')),'dd-mon-yyyy');
我现在收到错误“ORA-00907:缺少右括号”,我已经仔细检查了几次括号,它们看起来对我来说是正确的..任何帮助都会很棒..谢谢!
更新 - 在查看了我上面的语法之后,我认为可能有太多的 TO_DATE 尝试转换正在进行。所以,我把它缩短到这个..
UPDATE OB_SEL_LST84_AGG_WKEND SET WKENDYEAR = (TO_DATE((substr(WKENDING,3,2))||(substr(WKENDING,0,1))||TO_CHAR(RYEAR)),'dd-mon-yyyy');
不过,我仍然收到缺少括号的错误.. ARGH!