2010-09-16 14 views
6

मेरे पास इस तरह की xml फ़ाइल से तारीख की स्ट्रिंग है: '2010-09-09T22: 33: 44.OZ'ओरेकल to_date समारोह। मास्क की आवश्यकता

मुझे केवल दिनांक और समय निकालने की आवश्यकता है। मैं प्रतीक टी और ओझेड (समय क्षेत्र) को अनदेखा करना चाहता हूं। मुझे किस मास्क का उपयोग करना चाहिए? अग्रिम

+0

की [परिवर्तित एक XSD तारीख XS: एक Oracle तिथि को dATETIME] संभव डुप्लिकेट (http://stackoverflow.com/questions/3549068/कनवर्टिंग-ए-एक्सएसडी-डेट-एक्सएसडेटाइम-टू-ए-ऑरैकल-डेट) – APC

उत्तर

11
select TO_DATE('2010-09-09T22:33:44.OZ' 
       ,'YYYY-MM-DD"T"HH24:MI:SS".OZ"') 
from dual; 

9/09/2010 10:33:44 PM 
6

धन्यवाद समय क्षेत्र जानकारी की जरूरत है, तो है:

select to_timestamp_tz('2010-09-09T22:33:44.GMT','YYYY-MM-DD"T"HH24:MI:SS.TZR') 
from dual; 

09-SEP-10 22.33.44.000000000 GMT 

लेकिन OZ किसी मान्यता प्राप्त समयक्षेत्र संक्षिप्त नाम नहीं है, तो आप कुछ करने के लिए है कि कुछ पूर्व रूपांतरण करने की ज़रूरत चाहते हैं कि है। आप इसे अनदेखा करना चाहते हैं

select to_date('2010-09-09T22:33:44.OZ','YYYY-MM-DD"T"HH24:MI:SS."OZ"') 
from dual; 

09/09/2010 22:33:44 -- assuming your NLS_DATE_FORMAT is DD/MM/YYYY HH24:MI:SS 

लेकिन यह तय है तो आप की आवश्यकता होगी नहीं है:

तुम सिर्फ उस हिस्से को अनदेखा करना चाहते हैं, और यह भी निश्चित होती है, तो आप क्या कर सकते हैं @Jeffrey केम्प ने कहा इसे बंद ट्रिम करने के लिए पहले की तरह कुछ (यहाँ संक्षिप्तता के लिए एक बाँध चर का उपयोग कर):

var input varchar2(32); 
exec :input := '2010-09-09T22:33:44.OZ'; 
select to_date(substr(:input,1,instr(:input,'.') - 1),'YYYY-MM-DD"T"HH24:MI:SS') 
from dual; 

09/09/2010 22:33:44 
+1

ओजेड ओर्त्ज़िट के लिए खड़ा है, जो स्थानीय टीआई के लिए जर्मन है मुझे। – APC

+0

ओह, ठीक है, तो मुझे लगता है कि इसका मतलब है कि टाइमज़ोन भाग को अनदेखा किया जा सकता है। किस मामले में @ जेफरी का जवाब बल्कि अधिक संक्षिप्त है। –

+0

आपके उत्तर –

संबंधित मुद्दे