Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Konwertuj kolumnę datetime na czas UTC

Na początek:to_char() zwraca ciąg z daty. Więc jeśli chcesz date , nie używaj go, tj. zastąp to:

to_char(to_date(f_sta_date, 'YYYYMMDD') + (f_sta_time)/86400), 'YYYY-MM-DD HH24:MI:SS')

Do:

to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400

Następnie:jeśli chodzi o zarządzanie strefami czasowymi, musisz użyć timestamp with time zone typ danych zamiast date . Aby przekonwertować datę na czas lokalny (tj. strefę czasową sesji, która jest zdefiniowana przez SESSIONTIMEZONE ) do znacznika czasu i uzyskaj odpowiednią datę/godzinę w UTC, możesz zrobić:

cast(to_date(f_sta_date, 'YYYYMMDD') + f_sta_time/86400 as timestamp with time zone) 
    at time zone 'UTC'

Twoje zapytanie:

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. Jak wyświetlić wszystkie tabele w Oracle?

  2. flyway clean nie usuwa zadań ani programów harmonogramu

  3. Jak usunąć wiodące zera z wartości dnia i miesiąca w Oracle podczas parsowania do ciągu za pomocą funkcji to_char?

  4. Scalanie Oracle sql do wstawiania i usuwania, ale bez aktualizacji

  5. Jak poznać id przed zapisaniem obiektu w jpa?