स्ट्रिंग-टू-डेट रूपांतरण नियम अतिरिक्त स्वरूपण नियमों की अनुमति दें (बिना किसी अन्य संशोधक को लागू किए)। तो:
MM
MON
. से भी मेल खाता है औरMONTH
;MON
MONTH
matches से मेल खाता है (और इसके विपरीत);RR
RRRR
से मेल खाता है; और- विराम चिह्न वैकल्पिक है।
तो:
SELECT TO_DATE( '10AUGUST2016', 'DD-MM-RR' ) FROM DUAL UNION ALL
SELECT TO_DATE( '10AUGUST2016', 'DD-MON-RR' ) FROM DUAL UNION ALL
SELECT TO_DATE( '10AUGUST2016', 'DD-MONTH-RR' ) FROM DUAL UNION ALL
SELECT TO_DATE( '10AUG2016', 'DD-MM-RR' ) FROM DUAL UNION ALL
SELECT TO_DATE( '10AUG2016', 'DD-MON-RR' ) FROM DUAL UNION ALL
SELECT TO_DATE( '10AUG2016', 'DD-MONTH-RR' ) FROM DUAL;
सभी दिनांक उत्पन्न करते हैं 2016-08-10T00:00:00
।
फिर:
DUAL सेSELECT TO_DATE( '10-AUGUST-2016', 'FXDD-MM-RR' ) FROM DUAL;
देता है:ORA-01858: a non-numeric character was found where a numeric was expected
और केवल वहीं मेल खाएगा जहां सटीक पैटर्न मिलान पाया जाता है (हालांकि RR
अभी भी RRRR
से मेल खाएगा )।
हां, ओरेकल परोक्ष रूप से TO_DATE( '10AUGUST2016', NLS_DATE_FORMAT )
का उपयोग कर रहा है रूपांतरण करने के लिए।
यदि आप उपयोग करते हैं:
ALTER SESSION SET NLS_DATE_FORMAT = 'FXDD-MM-RR';
तब आपका इंसर्ट विफल हो जाएगा।