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

Hàm TZ_OFFSET () trong Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tính toán số dư đang chạy trong truy vấn oracle

  2. Hàm CAST () trong Oracle

  3. Tạo ứng dụng Java trong Oracle JDeveloper, Phần 2

  4. Khi nào Oracle lập chỉ mục giá trị cột rỗng?

  5. Có cách nào để lấy số hàng trong Mysql giống như rownum trong oracle không