आरंभ करने के लिए:to_char()
एक तारीख से एक स्ट्रिंग देता है। तो अगर आप एक date
चाहते हैं , इसका उपयोग न करें, अर्थात इसे बदलें:
to_char(to_date(f_sta_date, 'YYYYMMDD') + (f_sta_time)/86400), 'YYYY-MM-DD HH24:MI:SS')
प्रति:
to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400
फिर:जब समय क्षेत्र को प्रबंधित करने की बात आती है, तो आपको timestamp with time zone
का उपयोग करना होगा date
. के बजाय डेटाटाइप . अपनी तिथि को स्थानीय समय में बदलने के लिए (अर्थात आपके सत्र का समय क्षेत्र, जिसे SESSIONTIMEZONE
द्वारा परिभाषित किया गया है) ) एक टाइमस्टैम्प के लिए और UTC पर संबंधित दिनांक/समय प्राप्त करें, आप यह कर सकते हैं:
cast(to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400 as timestamp with time zone)
at time zone 'UTC'
आपकी क्वेरी:
select
to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400 dt_sta,
to_date(f_sto_date, 'YYYYMMDD') + f_sto_time/86400 dt_sto,
cast(to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400 as timestamp)
at time zone 'UTC' dt_sta_utc,
cast(to_date(f_sto_date, 'YYYYMMDD') + f_sto_time/86400 as timestamp)
at time zone 'UTC' dt_sto_utc
from t