如果将其用双引号括起来,则可以将任意文字添加到您的格式掩码中。
SQL> ed
Wrote file afiedt.buf
1 SELECT TO_CHAR(TO_DATE('December 25th, 2004', 'MONTH DD"th", YYYY'),
2 'DD-MM-YY')
3* FROM dual
SQL>/
TO_CHAR(
--------
25-12-04
当然,这只是工作,如果字符串总是包含文字字符串th
。如果您有其他后缀(即December 1st, 2004
)其他字符串,你会得到一个错误
SQL> ed
Wrote file afiedt.buf
1 SELECT TO_CHAR(TO_DATE('December 1st, 2004', 'MONTH DD"th", YYYY'),
2 'DD-MM-YY')
3* FROM dual
SQL>/
SELECT TO_CHAR(TO_DATE('December 1st, 2004', 'MONTH DD"th", YYYY'),
*
ERROR at line 1:
ORA-01861: literal does not match format string
如果要同时处理,你可能需要解析原始字符串删除后缀转换字符串之前一个日期,然后返回不同的字符串
SQL> ed
Wrote file afiedt.buf
1 WITH x AS (
2 SELECT 'December 1st, 2004' str FROM dual UNION ALL
3 SELECT 'December 25th, 2004' FROM dual
4 )
5 SELECT TO_CHAR(
6 TO_DATE(SUBSTR(str, 1, INSTR(str, ',') - 3) ||
7 SUBSTR(str, INSTR(str, ',')),
8 'MONTH DD, YYYY'),
9 'DD-MM-YY')
10* FROM x
SQL>/
TO_CHAR(
--------
01-12-04
25-12-04
的SUBSTR是这样做当然 – 2013-04-21 13:02:40