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

Oracle chuyển đổi TIMESTAMP với múi giờ thành DATE

to_timestamp_tz() chức năng với at time zone mệnh đề có thể được sử dụng để chuyển đổi chuỗi ký tự của bạn thành giá trị của timestamp with time zone kiểu dữ liệu:

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  /

Kết quả:

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

Và sau đó, chúng tôi sử dụng cast() hàm để tạo ra một giá trị của date kiểu dữ liệu:

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 

Tìm hiểu thêm về mệnh đề múi giờ và hàm 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. Chèn vào từ CTE

  2. Kiểu dữ liệu Oracle JDBC và Oracle CHAR

  3. cách tìm tất cả các chỉ mục và cột của chúng cho bảng, dạng xem và từ đồng nghĩa trong oracle

  4. CHO THUÊ LOB

  5. oracle diff:làm thế nào để so sánh hai bảng?