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

कैसे स्ट्रिंग प्रारूप में Oracle डेटाबेस से ऑपरेटिंग सिस्टम के समय क्षेत्र को इकट्ठा करने के लिए? (तारीख को tz के साथ ts में माइग्रेट/परिवर्तित करें)

यदि डेटा पहले से ही Oracle SQL तालिका में है, और आपको समय क्षेत्र के साथ टाइमस्टैम्प में कनवर्ट करना होगा (उदाहरण के लिए, उसी तालिका में आपके द्वारा बनाए गए नए कॉलम में), तो आपको स्पष्ट रूप से OS पर जाने की आवश्यकता नहीं है, या Oracle डेटाबेस के अलावा जावा या किसी अन्य चीज़ का उपयोग करें।

यह आपके प्रश्न से स्पष्ट नहीं है कि क्या आपको "दिनांक" सर्वर समय क्षेत्र में होना चाहिए था (आप "डेटाबेस" का उल्लेख करते हैं जिसका सामान्य रूप से सर्वर का अर्थ है) या क्लाइंट टाइम ज़ोन (आप "सत्र" का उल्लेख करते हैं जिसका अर्थ है ग्राहक)। किसी भी तरह:

update <your_table>
set <timestamp_with_time_zone_col> = 
            from_tz(cast<date_col> as timestamp, dbtimezone)
;

या sessiontimezone . का उपयोग करें दूसरे तर्क के रूप में, यदि आपको यही चाहिए।

यह मानता है कि डेटाबेस (और/या सत्र) समय क्षेत्र क्लाइंट में क्रमशः डीबी में ठीक से स्थापित किया गया है। यदि ऐसा नहीं है/वे नहीं हैं, तो इसे पहले ठीक करने की आवश्यकता है। यदि पैरामीटर पहले स्थान पर सही ढंग से सेट किए गए हैं, तो Oracle दिन के समय की बचत को संभालने में पूरी तरह से सक्षम है। (और यदि वे नहीं हैं, तो यह स्पष्ट नहीं है कि आप अपने ऑपरेशन को पहले स्थान पर डेटाबेस के समर्थन की तुलना में "अधिक सही" होने का प्रयास क्यों करेंगे।)

उदाहरण:नीचे दिए गए खंड में, मैं एक कॉलम के साथ एक तालिका का अनुकरण करता हूं dt डेटा प्रकार में date . फिर मैं इसे timestamp with time zone . में बदल देता हूं , मेरे सत्र (क्लाइंट) के समय क्षेत्र में।

with
  my_table ( dt ) as ( 
    select to_date('2018-06-20 14:30:00', 'yyyy-mm-dd hh24:mi:ss') from dual 
  )
select dt,
       from_tz(cast(dt as timestamp), sessiontimezone) as ts_with_tz
from   my_table
;

DT                  TS_WITH_TZ                                       
------------------- -------------------------------------------------
2018-06-20 14:30:00 2018-06-20 14:30:00.000000000 AMERICA/LOS_ANGELES


  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. जावा में VARCHAR2(5) के प्रकार तालिका को कैसे मैप करें?

  3. पीएल/एसक्यूएल कस्टम क्वेरी से चयन कथन कॉलम नाम निकालें

  4. समानांतर में कई प्रक्रियाओं को चलाएँ/निष्पादित करें - Oracle PL/SQL

  5. Oracle PLSQL में सेल्फ-क्लोजिंग xml टैग कैसे प्राप्त करें?