Oracle
 sql >> база данни >  >> RDS >> Oracle

Преобразувайте колоната за дата и час в utc време

За да започнете с: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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Валидирането се изпълнява на всички редове при табулиране на Oracle ADF

  2. Access/jet еквивалент на декодирането на Oracle

  3. Игнорирайте запетаите между кавички, когато четете CSV Oracle съхранена процедура UTL_FILE

  4. Как мога да създам таблица с оракул, но с малки знаци?

  5. Как да извлечете низ между скоби в Oracle sql заявка