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

Chuyển đổi chuỗi có múi giờ viết tắt thành dấu thời gian

Trên thực tế, truy vấn của bạn sẽ gây ra lỗi ORA-01857: not a valid time zone hoặc ORA-01882: timezone region not found

PDT không phải là một khu vực múi giờ hợp lệ, tức là nó không rõ ràng. Chạy truy vấn này để nhận các ý nghĩa khác nhau của PDT :

SELECT tzabbrev, TZ_OFFSET(tzname), tzname
FROM v$timezone_names 
WHERE tzabbrev = 'PDT'
ORDER BY 2;

TZABBREV    TZ_OFFSET(TZNAME)   TZNAME
PDT -06:00  America/Inuvik
PDT -07:00  US/Pacific-New
PDT -07:00  America/Ensenada
PDT -07:00  America/Dawson
PDT -07:00  America/Dawson_Creek
PDT -07:00  America/Los_Angeles
PDT -07:00  America/Tijuana
PDT -07:00  America/Vancouver
PDT -07:00  America/Whitehorse
PDT -07:00  Canada/Pacific
PDT -07:00  Canada/Yukon
PDT -07:00  Mexico/BajaNorte
PDT -07:00  PST
PDT -07:00  PST8PDT
PDT -07:00  US/Pacific
PDT -08:00  America/Juneau

Bạn phải sử dụng PST như múi giờ khu vực. Cài đặt tiết kiệm ánh sáng ban ngày sau đó được xác định từ ngày nhất định:

SELECT 
    TO_TIMESTAMP_TZ('Jan 29 14:12:56 PST 2015','Mon dd hh24:mi:ss TZR YYYY') dt_ts_winter,
    TO_TIMESTAMP_TZ('Jun 29 14:12:56 PST 2015','Mon dd hh24:mi:ss TZR YYYY') dt_ts_summer 
FROM dual;

DT_TS_WINTER                            DT_TS_SUMMER
2015-01-29 14:12:56.000000000 -08:00    2015-06-29 14:12:56.000000000 -07:00

Vì các giá trị của bạn được lưu trữ dưới dạng VARCHAR2 (bây giờ bạn biết tại sao bạn không nên làm như vậy), bạn có thể thay đổi nó bằng REGEXP_REPLACE(dt_string, 'PDT', 'PST')




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Oracle TIMESTAMP VỚI TIMEZONE

  2. Tìm nạp và thu thập hàng loạt từ sys_refcursor từ một thủ tục khác và chèn vào một bảng khác

  3. Có thể xếp hàng từ hàng đợi ANYDATA Synchronous Capture bằng JDBC không?

  4. Tính tuổi của Oracle từ Ngày sinh và Ngày nay

  5. Giới thiệu về phương pháp thu thập PL / SQL trong cơ sở dữ liệu Oracle