आपको दो समस्याएं हैं:TO_DATE
किसी भी समय क्षेत्र घटकों या आंशिक सेकंड को नहीं पहचानता है, आपको इसे समय क्षेत्र के साथ टाइमस्टैम्प में बदलना होगा, और .s
वैसे भी आप भिन्नात्मक सेकंड का प्रतिनिधित्व नहीं करते हैं, आपको .ff
. की आवश्यकता है . मान्य प्रारूप मॉडल दस्तावेज़ीकरण में दिखाए गए हैं
।
इन्हें एक साथ रखकर आप यह कर सकते हैं:
SELECT TO_TIMESTAMP_TZ ('2015-08-26T05:46:30.488+0100',
'YYYY-MM-DD"T"hh24:mi:ss.ffTZHTZM')
FROM DUAL;
TO_TIMESTAMP_TZ('2015-08-26T05:46:30.488+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZ
-------------------------------------------------------------------------------
26-AUG-15 05.46.30.488000000 +01:00
यदि आप वास्तव में इसे एक तिथि के रूप में चाहते हैं तो आपको यह तय करने की आवश्यकता होगी कि समय क्षेत्र की जानकारी के साथ क्या करना है - या तो मान लें कि यह स्थानीय समय है (अनिवार्य रूप से इसे अनदेखा करें), या यूटीसी या किसी अन्य समय क्षेत्र में कनवर्ट करें। हालांकि आप वास्तव में इसे समय क्षेत्र के साथ टाइमस्टैम्प के रूप में रखना चाह सकते हैं।