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')