Oracle
 sql >> база данни >  >> RDS >> Oracle

Преобразуване на низ със съкратена часова зона в времево клеймо

Всъщност вашата заявка трябва да предизвика грешка ORA-01857: not a valid time zone или ORA-01882: timezone region not found

PDT не е валиден регион за часова зона, т.е. не е еднозначен. Изпълнете тази заявка, за да получите различни значения на 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

Трябва да използвате PST като регион на часовата зона. След това настройките за лятното часово време се определят от даден ден:

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

Тъй като вашите стойности се съхраняват като VARCHAR2 (сега знаете защо не трябва да го правите по този начин) можете да го промените с 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. Oracle - Създайте индекс само ако не съществува

  2. Първични ключове в Oracle и SQL Server

  3. Съхраняване на IP адрес в Oracle SQL таблица

  4. Получаване на MS Office 2013 (32 бита) Excel и Access за свързване към базата данни на Oracle, когато са инсталирани 32 и 64 клиента

  5. Заявка за намиране на средно претеглена цена