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

Chuyển đổi múi giờ trong truy vấn SQL

Bạn có thể sử dụng truy vấn này mà không phải lo lắng về việc thay đổi múi giờ.

select to_char(cast(application_recv_date as timestamp) at time zone 'US/Eastern',
               'MON dd, YYYY'
              )
from application;

Ví dụ:

EDT:

select cast(date'2014-04-08' as timestamp) d1,
       cast(date'2014-04-08' as timestamp) at time zone 'US/Eastern' d2
from dual;

D1                                 D2
---------------------------------- -------------------------------------------
08-APR-14 12.00.00.000000 AM       07-APR-14 08.00.00.000000 PM US/EASTERN

EST:

select cast(date'2014-12-08' as timestamp) d1,
       cast(date'2014-12-08' as timestamp) at time zone 'US/Eastern' d2
from dual;

D1                                 D2
---------------------------------- -------------------------------------------
08-DEC-14 12.00.00.000000 AM       07-DEC-14 07.00.00.000000 PM US/EASTERN

CẬP NHẬT:

Cảm ơn Alex Poole đã nhắc nhở rằng, khi múi giờ không được chỉ định, múi giờ địa phương sẽ được sử dụng để chuyển đổi.

Để buộc ngày được công nhận là GMT, hãy sử dụng from_tz.

from_tz(cast(date'2014-12-08' as timestamp), 'GMT') at time zone 'US/Eastern'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phiên bản Oracle ODP.NET thay thế bất khả tri

  2. Khi nào Oracle lập chỉ mục giá trị cột rỗng?

  3. Chạy SCRIPT từ PL / SQL Block

  4. Chuyển đổi chữ số / số bằng từ sang tiền tệ INR (Rupee Ấn Độ) trong Oracle PL / SQL

  5. Các phương pháp hay nhất:Nhiệm vụ bảo trì và nâng cao cho Đám mây Oracle