如果將其用雙引號括起來,則可以將任意文字添加到您的格式掩碼中。
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