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

Hàm SYS_EXTRACT_UTC () trong Oracle

Trong Cơ sở dữ liệu Oracle, SYS_EXTRACT_UTC() hàm trích xuất UTC (Giờ phối hợp quốc tế) từ một giá trị ngày giờ với độ lệch múi giờ hoặc tên khu vực múi giờ.

Cú pháp

Cú pháp như sau:

SYS_EXTRACT_UTC(datetime_with_timezone)

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;

Kết quả:

25/AUG/35 06:30:45.123456789 AM

Định dạng kết quả phụ thuộc vào giá trị của NLS_TIMESTAMP_FORMAT của bạn tham số. Giá trị mặc định của thông số này được lấy từ NLS_TERRITORY tham số. Thay đổi bất kỳ điều nào trong số này có thể thay đổi định dạng của SYS_EXTRACT_UTC() chức năng cho phiên của bạn.

Ví dụ:

ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD-MON-RRRR HH24:MI:SSXFF';
SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;

Kết quả:

25-AUG-2035 06:30:45.123456789

Và đây là giao diện khi tôi đặt NLS_TERRITORY tham số thành AMERICA :

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;

Kết quả:

25-AUG-35 06.30.45.123456789 AM

Việc thay đổi tham số này sẽ đặt NLS_TIMESTAMP_FORMAT một cách hoàn toàn sang định dạng cho AMERICA .

Xem Cách thay đổi định dạng ngày của phiên của bạn để biết thêm thông tin và ví dụ.

Tên khu vực múi giờ

Ngoài ra, bạn có thể sử dụng tên khu vực múi giờ thay vì chênh lệch múi giờ.

Ví dụ:

SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;

Kết quả:

25-AUG-35 03.30.45.123456789 AM

Múi giờ mặc định

Nếu múi giờ không được chỉ định, thì ngày giờ được liên kết với múi giờ của phiên.

Ví dụ:

SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;

Kết quả:

25-AUG-35 12.30.45.123456789 AM

Bạn có thể kiểm tra múi giờ của phiên hiện tại bằng SESSIONTIMEZONE chức năng:

SELECT SESSIONTIMEZONE
FROM DUAL;

Kết quả:

Australia/Brisbane

Xem 4 cách thay đổi múi giờ trong Oracle để biết các ví dụ về cách thay đổi múi giờ.

Đối số rỗng

Chuyển null dẫn đến lỗi:

SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT SYS_EXTRACT_UTC(null)
FROM DUAL
Error at Command Line : 1 Column : 24
Error report -
SQL Error: ORA-30175: invalid type given for an argument
30175. 00000 -  "invalid type given for an argument"
*Cause:    There is an argument with an invalid type in the argument list.
*Action:   Use the correct type wrapper for the argument.

Thiếu đối số

Việc gọi hàm với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:

SELECT SYS_EXTRACT_UTC()
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT SYS_EXTRACT_UTC()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc DUY NHẤT so với kiểm tra trước khi CHÈN

  2. Sự khác biệt trừ so với ngoại trừ trong ORACLE / SQL Server

  3. Làm thế nào để tách một chuỗi trong PL / SQL?

  4. ORA-12505, TNS:người nghe hiện không biết về SID được cung cấp trong bộ mô tả kết nối

  5. PL / SQL:Lỗi PLS-00306:sai số hoặc loại đối số trong lệnh gọi được kích hoạt cho bảng số