Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chuyển đổi cột datetime thành utc time

Để bắt đầu bằng:to_char() trả về một chuỗi từ một ngày. Vì vậy, nếu bạn muốn một date , không sử dụng nó, tức là thay thế cái này:

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

Tới:

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

Sau đó:khi nói đến quản lý múi giờ, bạn cần sử dụng timestamp with time zone kiểu dữ liệu thay vì date . Để chuyển đổi ngày của bạn theo giờ địa phương (tức là múi giờ trong phiên của bạn, được xác định bởi SESSIONTIMEZONE ) vào dấu thời gian và nhận ngày / giờ tương ứng lúc UTC, bạn có thể thực hiện:

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

Truy vấn của bạn:

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. Làm cách nào để chạy các hàm dbms_crypto trong Oracle với tư cách người dùng thông thường?

  2. Làm thế nào để triển khai trình kích hoạt này trên Oracle SQL?

  3. Java - nghĩa chính xác http.maxConnections

  4. Ngoại lệ ném trình điều khiển ODP.Net trên .NET Core 5.0

  5. Cuộc gọi JDBC tới Oracle trả về 3 dấu chấm hỏi