Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

संक्षिप्त समय क्षेत्र के साथ स्ट्रिंग का टाइमस्टैम्प में रूपांतरण

वास्तव में आपकी क्वेरी में त्रुटि होनी चाहिए ORA-01857: not a valid time zone या ORA-01882: timezone region not found

PDT मान्य समय क्षेत्र क्षेत्र नहीं है, अर्थात यह अस्पष्ट है। PDT . के विभिन्न अर्थ प्राप्त करने के लिए इस क्वेरी को चलाएँ :

SELECT tzabbrev, TZ_OFFSET(tzname), tzname
FROM v$timezone_names 
WHERE tzabbrev = 'PDT'
ORDER BY 2;

TZABBREV    TZ_OFFSET(TZNAME)   TZNAME
PDT -06:00  America/Inuvik
PDT -07:00  US/Pacific-New
PDT -07:00  America/Ensenada
PDT -07:00  America/Dawson
PDT -07:00  America/Dawson_Creek
PDT -07:00  America/Los_Angeles
PDT -07:00  America/Tijuana
PDT -07:00  America/Vancouver
PDT -07:00  America/Whitehorse
PDT -07:00  Canada/Pacific
PDT -07:00  Canada/Yukon
PDT -07:00  Mexico/BajaNorte
PDT -07:00  PST
PDT -07:00  PST8PDT
PDT -07:00  US/Pacific
PDT -08:00  America/Juneau

आपको PST . का उपयोग करना होगा समय क्षेत्र क्षेत्र के रूप में। डेलाइट सेविंग सेटिंग तब दिए गए दिन से निर्धारित की जाती हैं:

SELECT 
    TO_TIMESTAMP_TZ('Jan 29 14:12:56 PST 2015','Mon dd hh24:mi:ss TZR YYYY') dt_ts_winter,
    TO_TIMESTAMP_TZ('Jun 29 14:12:56 PST 2015','Mon dd hh24:mi:ss TZR YYYY') dt_ts_summer 
FROM dual;

DT_TS_WINTER                            DT_TS_SUMMER
2015-01-29 14:12:56.000000000 -08:00    2015-06-29 14:12:56.000000000 -07:00

चूंकि आपके मान VARCHAR2 . के रूप में संग्रहीत हैं (अब आप जानते हैं कि आपको ऐसा क्यों नहीं करना चाहिए) आप इसे REGEXP_REPLACE(dt_string, 'PDT', 'PST') से बदल सकते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल अभिव्यक्ति द्वारा ग्रुप क्यों नहीं कह रहा है?

  2. एक निश्चित श्रेणी के संख्यात्मक मानों के लिए एक वर्चर फ़ील्ड खोजना

  3. Oracle SQL कॉलम प्रकार को संख्या से varchar2 में बदलने के लिए, जबकि इसमें डेटा होता है

  4. Oracle में V प्रारूप तत्व के बारे में

  5. मेरा TO_DATE ठीक से काम नहीं कर रहा है