В Oracle Database, NUMTOYMINTERVAL()
функция преобразува число в INTERVAL YEAR TO MONTH
буквално.
Синтаксис
Синтаксисът е така:
NUMTOYMINTERVAL(n, 'interval_unit')
n
аргументът е числото, за което да се преобразува.
Стойността за interval_unit
определя единицата n
и трябва да се разреши до една от следните стойности на низове:
- ‘
YEAR
‘ - ‘
MONTH
‘
interval_unit
аргументът не е чувствителен към малки и големи букви.
Пример
Ето пример за демонстрация:
SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;
Резултат:
+00-01
Ето още един, който използва годината:
SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;
Резултат:
+01-00
Дроби
Ето един, който съдържа дробна част в първия аргумент:
SELECT
NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;
Резултат:
Year Month _________ _________ +10-07 +00-11
Чувствителност на регистрите
Вторият аргумент не е чувствителен към малки и големи букви:
SELECT
NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;
Резултат:
YEAR year __________ __________ +150-00 +150-00
Нулеви аргументи
Предаването на null
за всеки аргумент води до null
:
SET NULL 'null';
SELECT
NUMTOYMINTERVAL(1, null),
NUMTOYMINTERVAL(null, 'year')
FROM DUAL;
Резултат:
NUMTOYMINTERVAL(1,NULL) NUMTOYMINTERVAL(NULL,'YEAR') __________________________ _______________________________ null null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Липсващ аргумент
Извикването на функцията с грешен брой аргументи или без предаване на аргументи води до грешка:
SELECT NUMTOYMINTERVAL()
FROM DUAL;
Резултат:
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: