एक Oracle DATE
डेटा प्रकार का कोई समय क्षेत्र नहीं होता - आपको TIMESTAMP WITH TIMEZONE
की आवश्यकता होती है डेटा प्रकार:
SELECT TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
FROM DUAL
अगर आप किसी DATE
में कनवर्ट करना चाहते हैं (और समय क्षेत्र क्षेत्र हमेशा CET
होता है ) तो आप इसका उपयोग कर सकते हैं:
SELECT TO_DATE(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS "CET" YYYY'
)
FROM DUAL
यदि आप इसे DATE
के रूप में चाहते हैं डेटा प्रकार और मूल स्ट्रिंग में समय क्षेत्र का सम्मान करने के लिए आपको (1) इसे TIMESTAMP WITH TIMEZONE
में बदलना होगा डेटा प्रकार; (2) उस मान को एक मानकीकृत समय क्षेत्र में परिवर्तित करें (इसके लिए अक्सर यूटीसी का उपयोग किया जाता है); फिर (3) उसे एक तिथि में बदलें:
SELECT CAST(
TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
AT TIME ZONE 'UTC'
AS DATE
)
FROM DUAL;
जो दिनांक को आउटपुट करेगा 2016-11-24 14:20:52
(इनपुट तिथि का यूटीसी प्रतिनिधित्व)।