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

Oracle Преобразува TIMESTAMP с часова зона в DATE

to_timestamp_tz() функция с at time zone клаузата може да се използва за преобразуване на вашия низов литерал в стойност на timestamp with time zone тип данни:

SQL> with t1(tm) as(
  2    select '2013-11-08T10:11:31+02:00' from dual
  3  )
  4  select to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM')
  5           at time zone '+4:00'         as this_way
  6       , to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM')
  7           at time zone 'Europe/Moscow' as or_this_way
  8    from t1
  9  /

Резултат:

THIS_WAY                            OR_THIS_WAY
----------------------------------------------------------------------------
2013-11-08 12.11.31 PM +04:00       2013-11-08 12.11.31 PM EUROPE/MOSCOW

И тогава използваме cast() функция за генериране на стойност на date тип данни:

with t1(tm) as(
  select '2013-11-08T10:11:31+02:00' from dual
)
select cast(to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM') 
         at time zone '+4:00' as date)   as this_way  
     , cast(to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM') 
         at time zone 'Europe/Moscow' as date) as or_this_way
  from t1

This_Way             Or_This_Way 
------------------------------------------
2013-11-08 12:11:31  2013-11-08 12:11:31 

Научете повече за клаузата at time zone и функцията to_timestamp_tz().



  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. Substr или LIKE по-бърз ли е в Oracle?

  3. Актуализирайте стойностите на множество колони в таблицата с помощта на една заявка

  4. Заявка за изчисляване както на кумулативната, така и на общата SUM над заплатата

  5. TNSPING ОК, но sqlplus дава ORA-12154?