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: