Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция NUMTOYMINTERVAL() в Oracle

В 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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преброяване на броя на поява на символ в Oracle SQL

  2. Не е валиден месец при вмъкване на данни в oracle

  3. Инструкция INSERT SELECT в Oracle 11G

  4. Ляво и дясно се свързват с помощта на знака плюс (+) в Oracle

  5. Коригиране на грешка „ORA-01789:блокът на заявката има неправилен брой колони с резултати“