यदि मान एक संख्या या स्ट्रिंग है तो आप इसे एक उपयुक्त मास्क के साथ एक तिथि में परिवर्तित कर सकते हैं - जो कि आप गायब हैं, और जो त्रुटि आपको मिल रही है (क्योंकि यह आपके सत्र के NLS_DATE_FORMATकोड का उपयोग कर रहा है)> सेटिंग, जो स्पष्ट रूप से डेटा के प्रारूप से मेल नहीं खाती; लेकिन जिस पर आपको वैसे भी भरोसा नहीं करना चाहिए, जैसा कि @MTO ने टिप्पणियों में कहा है):
to_date(ID_BB_SECURITY, 'YYYYMMDD')
और फिर माह संख्या निकालेंए> उस से:
select extract(month from to_date(ID_BB_SECURITY, 'YYYYMMDD')) from BT_EXPORT
या आप केवल एक सबस्ट्रिंग का उपयोग कर सकते हैं:
BT_EXPORT सेselect to_number(substr(ID_BB_SECURITY, 5, 2)) from BT_EXPORT;
वे एक निश्चित सुसंगत प्रारूप मानते हैं, जो गलत डेटा प्रकार का उपयोग करते समय हमेशा एक जोखिम भरा अनुमान होता है। उत्तर यदि यह एक संख्या है तो वे संख्या से स्ट्रिंग में एक अंतर्निहित रूपांतरण कर रहे हैं, जिसे आप अधिक स्पष्टता के लिए एक स्पष्ट रूपांतरण में बदल सकते हैं।
यदि यह पहले से ही एक तिथि है - जैसा कि निश्चित रूप से होना चाहिए - तो आपको रूपांतरण की आवश्यकता नहीं है:
select extract(month from ID_BB_SECURITY) from BT_EXPORT