2011-12-03 16 views
14

में एक स्ट्रिंग दिनांक से दिनांक प्रारूप को परिवर्तित करने के लिए कैसे करें मेरा दिनांक मान varchar2 के रूप में संग्रहीत किया गया है और मान 15/August/2009,4:30 PM है, इसे DD-MM-YYYY जैसे उचित दिनांक प्रारूप में कैसे परिवर्तित करें।oracle10g

उत्तर

26

आप एक तिथि TO_DATE के समारोह का उपयोग कर के लिए एक स्ट्रिंग में बदल सकते हैं, फिर एक और स्ट्रिंग के रूप में की तारीख TO_CHAR उपयोग करते हुए, यानी पुन: फ़ॉर्मेट:

SELECT TO_CHAR(
     TO_DATE('15/August/2009,4:30 PM' 
       ,'DD/Month/YYYY,HH:MI AM') 
     ,'DD-MM-YYYY') 
FROM DUAL; 

15-08-2009 

उदाहरण के लिए, यदि आपके तालिका नाम mytable और है

SELECT TO_CHAR(
     TO_DATE(MYDATESTRING 
       ,'DD/Month/YYYY,HH:MI AM') 
     ,'DD-MM-YYYY') 
FROM MYTABLE; 
+0

धन्यवाद। मैं कुछ सबस्ट्रिंग फ़ंक्शन का उपयोग करके इस परिणाम को प्राप्त करने में कैसे कामयाब रहा। लेकिन आपका जवाब मेरे इस्तेमाल से कहीं अधिक सरल है। आपका बहुत बहुत धन्यवाद। मेरा एसक्यूएल स्टेटमेंट cr__claim_int_details_view से to_date (substr (CRM_ACC_DATE_TIME, 1, instr (CRM_ACC_DATE_TIME, ',') - 1), 'dd-mm-yyyy') का चयन करता है; – leelavinodh

+0

हाँ, आमतौर पर एक बिल्ली त्वचा के लिए एक से अधिक तरीके है :) –

7

आपको TO_DATE फ़ंक्शन का उपयोग करने की आवश्यकता है।

SELECT TO_DATE('01/01/2004', 'MM/DD/YYYY') FROM DUAL; 
+1

मैं इस त्रुटि संदेश ORA-01,858 हो रही है: varchar2 स्तंभ MYDATESTRING है एक गैर संख्यात्मक कैरेक्टर मिला था जहां एक अंकीय उम्मीद थी ORA-02,063: GENCONAIMSUA से लाइन पूर्ववर्ती टी 01858. 00000 - "एक गैर-संख्यात्मक चरित्र पाया गया जहां एक संख्यात्मक अपेक्षित था" * कारण: दिनांक प्रारूप मॉडल का उपयोग करके परिवर्तित किया जाने वाला इनपुट डेटा गलत था। इनपुट डेटा में एक संख्या नहीं थी जहां प्रारूप मॉडल द्वारा आवश्यक संख्या थी। * कार्य: तत्व संख्या और प्रकार से मेल खाते हैं, यह सुनिश्चित करने के लिए इनपुट डेटा या दिनांक प्रारूप मॉडल को ठीक करें। फिर ऑपरेशन का पुनः प्रयास करें। – leelavinodh