संभवतः निश्चित T और Z आपको थोड़ा भ्रमित कर रहे हैं, क्योंकि वे सामान्य नहीं हैं डेटाटाइम प्रारूप मॉडल तत्व लेकिन दस्तावेज कहते हैं:
तो आप T और Z को डबल-कोट्स में संलग्न करते हैं, जैसे "T"
और "Z"
, आपके प्रारूप मॉडल में।
यदि आप समय क्षेत्र में हस्तक्षेप नहीं करते हैं तो आप का उपयोग कर सकते हैं to_timestamp()
समारोह
:
to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
या यदि आप समय क्षेत्र के साथ रहना चाहते हैं तो आप का उपयोग कर सकते हैं to_timestamp_tz()
समारोह
, जो आपके वर्तमान सत्र समय क्षेत्र के लिए डिफ़ॉल्ट होगा (जैसा कि आप वास्तव में यहां एक निर्दिष्ट नहीं कर रहे हैं, Z की व्याख्या ज़ुलु/UTC के रूप में नहीं की गई है):
to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
यदि आप इसे समय क्षेत्र के साथ चाहते हैं और यह निर्दिष्ट करना चाहते हैं कि यह यूटीसी है तो आप इसे from_tz()
समारोह
:
from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')), 'UTC')
उन अंतरों को देखने के लिए, जो सत्र के लिए एक डेमो के रूप में समय क्षेत्र निर्दिष्ट करते हैं:
alter session set time_zone = 'America/New_York';
select to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as no_tz,
to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as default_tz,
from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'), 'UTC') as utc_tz
from dual;
NO_TZ
--------------------------------------------------
DEFAULT_TZ
--------------------------------------------------
UTC_TZ
--------------------------------------------------
24-MAR-15 07.08.24.000000000
24-MAR-15 07.08.24.000000000 AMERICA/NEW_YORK
24-MAR-15 07.08.24.000000000 UTC
मैं मान रहा हूं कि Z निश्चित है और आपको जो मान मिलते हैं, वे हमेशा UTC का प्रतिनिधित्व करते हैं; यदि आप वास्तव में उन मूल्यों में अलग-अलग समय क्षेत्र प्राप्त करते हैं जिन्हें आपको परिवर्तित करने की आवश्यकता है तो आपको उन्हें निकालने और लागू करने की आवश्यकता होगी - जो कि करने योग्य है, लेकिन मुश्किल है, और जब तक आपके पास वास्तव में वह स्थिति नहीं है तब तक जाने योग्य नहीं है।