Trong Cơ sở dữ liệu Oracle, TZ_OFFSET()
hàm trả về độ lệch múi giờ tương ứng với đối số dựa trên ngày câu lệnh được thực thi.
Cú pháp
Cú pháp như sau:
TZ_OFFSET({ 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTIMEZONE
}
)
Ví dụ
Dưới đây là một số ví dụ để minh chứng.
Tên khu vực múi giờ
Bạn có thể chuyển tên khu vực múi giờ hợp lệ:
SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;
Kết quả:
+09:30
Dưới đây là cách lấy danh sách múi giờ được hỗ trợ trong hệ thống của bạn.
Chênh lệch múi giờ
Bạn có thể vượt qua độ lệch múi giờ, trong trường hợp đó, nó chỉ tự trả về:
SELECT TZ_OFFSET('-10:00')
FROM DUAL;
Kết quả:
-10:00
SESSIONTIMEZONE
Chức năng
SESSIONTIMEZONE
hàm trả về múi giờ của phiên hiện tại. Bạn có thể sử dụng điều này để có được độ lệch múi giờ của phiên hiện tại của mình.
Ví dụ:
SELECT
SESSIONTIMEZONE,
TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;
Kết quả trong phiên của tôi:
SESSIONTIMEZONE TZ_OFFSET(SESSIONTIMEZONE) _____________________ _____________________________ Australia/Brisbane +10:00
DBTIMEZONE
Chức năng
DBTIMEZONE
hàm trả về múi giờ của cơ sở dữ liệu. Điều này có thể giống hoặc không giống với SESSIONTIMEZONE
trên hệ thống của bạn.
Ví dụ:
SELECT
DBTIMEZONE,
TZ_OFFSET(DBTIMEZONE)
FROM DUAL;
Kết quả:
DBTIMEZONE TZ_OFFSET(DBTIMEZONE) _____________ ________________________ +00:00 +00:00
Đối số rỗng
Chuyển null
kết quả là null
:
SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;
Kết quả:
null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null
xảy ra do một SELECT
trong SQL tuyên bố.
Tuy nhiên, bạn có thể sử dụng SET NULL
để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null
nên được trả lại.
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 TZ_OFFSET()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT TZ_OFFSET() 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: