Oracle
 sql >> Base de données >  >> RDS >> Oracle

Ignorer les caractères dans la fonction Oracle TO_DATE

Vous pouvez utiliser le signe dièse (# ) pour cela :

SELECT TO_DATE('2015-01-01 01:00:00.999', 'yyyy-mm-dd hh24:mi:ss.###') FROM dual;
--> 01/01/2015 01:00:00

Je n'ai pas trouvé cela dans la documentation , donc je ne peux pas dire pourquoi, mais ceux-ci fonctionnent aussi :

SELECT TO_DATE('01_','hh24#') FROM dual;

SELECT TO_DATE('01:01:01.0xx','hh24:mi:ss.###') FROM dual;

Celles-ci ne semblent pas fonctionner :

SELECT TO_DATE('010','hh24#') FROM dual;

SELECT TO_DATE('01:01:01.xxx','hh24:mi:ss.###') FROM dual;

Cela ne semble pas documenté, mais vous semblez pouvoir échanger les ponctuations sans problème :

SELECT TO_DATE('2015-01;01 11:12/13',
               'yyyy.mm,dd_hh-mi ss') FROM dual;
--> 01/01/2015 11:12:13

Vous pouvez utiliser des littéraux de caractères, entre guillemets doubles si vous savez quel texte ignorer :

SELECT TO_DATE('foo2015bar-01-!#%}01', '"foo"yyyy"bar"-mm-"!#%}"dd') FROM dual;
--> 01/01/2015