Začněte s:to_char()
vrátí řetězec z data. Pokud tedy chcete date
, nepoužívejte, tj. nahraďte toto:
to_char(to_date(f_sta_date, 'YYYYMMDD') + (f_sta_time)/86400), 'YYYY-MM-DD HH24:MI:SS')
Komu:
to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400
Pak:pokud jde o správu časových pásem, musíte použít timestamp with time zone
datový typ namísto date
. Chcete-li převést datum na místní čas (tj. časové pásmo vaší relace, které je definováno pomocí SESSIONTIMEZONE
) na časové razítko a získat odpovídající datum/čas v UTC, můžete:
cast(to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400 as timestamp with time zone)
at time zone 'UTC'
Váš dotaz:
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