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: