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

Hàm NUMTOYMINTERVAL () trong Oracle

Trong Cơ sở dữ liệu Oracle, NUMTOYMINTERVAL() hàm chuyển đổi một số thành INTERVAL YEAR TO MONTH theo nghĩa đen.

Cú pháp

Cú pháp như sau:

NUMTOYMINTERVAL(n, 'interval_unit')

Các n đối số là số cần chuyển đổi.

Giá trị cho interval_unit chỉ định đơn vị của n và phải giải quyết một trong các giá trị chuỗi sau:

  • YEAR
  • MONTH

interval_unit đối số không phân biệt chữ hoa chữ thường.

Ví dụ

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

SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Kết quả:

+00-01

Đây là một số khác sử dụng năm:

SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Kết quả:

+01-00

Phân số

Đây là một trong những có chứa một phần phân số trong đối số đầu tiên:

SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

Kết quả:

     Year     Month 
_________ _________ 
+10-07    +00-11    

Phân biệt chữ hoa chữ thường

Đối số thứ hai không phân biệt chữ hoa chữ thường:

SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Kết quả:

      YEAR       year 
__________ __________ 
+150-00    +150-00    

Đối số rỗng

Chuyển null cho một trong hai đối số cho kết quả là null :

SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

Kết quả:

   NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
__________________________ _______________________________ 
null                       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 NUMTOYMINTERVAL()
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT NUMTOYMINTERVAL()
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. Quản lý việc xử lý lỗi trong khi chạy sqlplus từ các tập lệnh shell

  2. Sự cố khi gọi thủ tục được lưu trữ từ C # với CLOB lớn

  3. SQL, trên dòng thác xóa và trên dòng thác cập nhật

  4. Tương đương với bảng Oracle Dual trong MS SqlServer là gì?

  5. Ví dụ về mệnh đề WHEN của Oracle Trigger