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: