Trong Cơ sở dữ liệu Oracle, NUMTODSINTERVAL()
hàm chuyển đổi một số thành INTERVAL DAY TO SECOND
theo nghĩa đen.
Cú pháp
Cú pháp như sau:
NUMTODSINTERVAL(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:
- ‘
DAY
‘ - ‘
HOUR
‘ - ‘
MINUTE
‘ - ‘
SECOND
‘
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 NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Kết quả:
+00 00:00:01.000000
Đây là một cái khác sử dụng một phút:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Kết quả:
+00 00:01:00.000000
Giây phân số
Theo mặc định, độ chính xác của trả về là 9. Đây là một trong những chỉ định giây phân số trong đối số đầu tiên:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Kết quả:
+00 00:00:10.123456789
Đây là những gì sẽ xảy ra nếu chúng tôi thay đổi nó thành một đơn vị khoảng thời gian khác:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Kết quả:
+10 02:57:46.666569600
Đối số rỗng
Chuyển null
cho một trong hai đối số cho kết quả là null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Kết quả:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ 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 NUMTODSINTERVAL()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NUMTODSINTERVAL() 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: