Можете да използвате знака за паунд (#
) за това:
SELECT TO_DATE('2015-01-01 01:00:00.999', 'yyyy-mm-dd hh24:mi:ss.###') FROM dual;
--> 01/01/2015 01:00:00
Не намерих това в документацията , така че не мога да кажа защо, но тези също работят:
SELECT TO_DATE('01_','hh24#') FROM dual;
SELECT TO_DATE('01:01:01.0xx','hh24:mi:ss.###') FROM dual;
Изглежда, че те не работят:
SELECT TO_DATE('010','hh24#') FROM dual;
SELECT TO_DATE('01:01:01.xxx','hh24:mi:ss.###') FROM dual;
Това изглежда недокументирано, но изглежда, че можете да разменяте препинателните знаци без проблеми:
SELECT TO_DATE('2015-01;01 11:12/13',
'yyyy.mm,dd_hh-mi ss') FROM dual;
--> 01/01/2015 11:12:13
Можете да използвате символни литерали, оградени в двойни кавички ако знаете кой текст да игнорирате:
SELECT TO_DATE('foo2015bar-01-!#%}01', '"foo"yyyy"bar"-mm-"!#%}"dd') FROM dual;
--> 01/01/2015