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

Chuyển đổi Múi giờ Oracle (sử dụng from_tz)

to_timestamp () nhận một chuỗi (VARCHAR2, CHAR ...) nếu bạn cố gắng cung cấp cho nó một ngày, thì oracle sẽ chuyển đổi nó thành một chuỗi theo NLS_DATE_FORMAT có thể thay đổi trong các môi trường khác nhau và trả về kết quả không mong muốn (như trong trường hợp này) .
Điều bạn nên làm là sử dụng to_char trước, vì vậy truy vấn của bạn có thể trông giống như sau:

select to_date(to_char((from_tz(to_timestamp(to_char(DATABASE_DATE, 'YYYY-MM-DD HH:MI:SS PM'), 'YYYY-MM-DD HH:MI:SS PM') ,'America/New_York')
at time zone 'America/Los_Angeles'),'YYYY-MM-DD HH:MI:SS PM'),'YYYY-MM-DD HH:MI:SS PM') as localtime
from table

CẬP NHẬT: nếu tôi hiểu bạn đúng thì bạn muốn một cái gì đó như thế này:

select to_char((from_tz(to_timestamp(to_char(DATABASE_DATE, 'YYYY-MM-DD HH:MI:SS PM'), 'YYYY-MM-DD HH:MI:SS PM') ,'America/New_York')
    at time zone 'America/Los_Angeles'),'YYYY-MM-DD HH:MI:SS PM TZD') as localtime
    from table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có gì sai với truy vấn FIRST_VALUE này?

  2. Làm thế nào để sử dụng WebDev.WebServer.exe (VS Web Server) trong x64?

  3. Viết truy vấn để tìm tên của (các) sinh viên đạt điểm tối đa trong ngành Kỹ thuật phần mềm. Sắp xếp kết quả dựa trên tên

  4. oracle diff:làm thế nào để so sánh hai bảng?

  5. Chuyển đổi dữ liệu cột chênh lệch TIMESTAMP sang định dạng chuỗi