अपने उदाहरण के लिए, आप case
. का उपयोग कर सकते हैं :
select (case when my_year is not null and my_year <> 0 and
my_year between -4713 and 9999
then TO_DATE(my_year || '-01-01', 'YYYY-MM-DD')
end)
दुर्भाग्य से, Oracle के पास रूपांतरण करने की कोई विधि नहीं है, यदि संभव हो तो, और अन्यथा NULL को वापस करना। SQL सर्वर ने हाल ही में पेश किया try_convert()
इस उद्देश्य के लिए।
एक विकल्प विफल रूपांतरण के लिए अपवाद हैंडलर के साथ अपना स्वयं का फ़ंक्शन लिखना है। अपवाद हैंडलर बस NULL
लौटाएगा खराब प्रारूप के लिए।