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

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

В Oracle Database, NUMTODSINTERVAL() функция преобразува число в INTERVAL DAY TO SECOND буквално.

Синтаксис

Синтаксисът е така:

NUMTODSINTERVAL(n, 'interval_unit')

n аргументът е числото, за което да се преобразува.

Стойността за interval_unit определя единицата n и трябва да се разреши до една от следните стойности на низове:

  • DAY
  • HOUR
  • MINUTE
  • SECOND

interval_unit аргументът не е чувствителен към малки и големи букви.

Пример

Ето пример за демонстрация:

SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;

Резултат:

+00 00:00:01.000000

Ето още един, който използва минута:

SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;

Резултат:

+00 00:01:00.000000

Дробни секунди

По подразбиране прецизността на връщането е 9. Ето един, който определя частични секунди в първия аргумент:

SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;

Резултат:

+00 00:00:10.123456789

Ето какво се случва, ако го променим с друга интервална единица:

SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;

Резултат:

+10 02:57:46.666569600

Нулеви аргументи

Предаването на null за всеки аргумент води до null :

SET NULL 'null';
SELECT 
    NUMTODSINTERVAL(1, null),
    NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;

Резултат:

   NUMTODSINTERVAL(1,NULL)    NUMTODSINTERVAL(NULL,'SECOND') 
__________________________ _________________________________ 
null                       null                             

По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

Липсващ аргумент

Извикването на функцията с грешен брой аргументи или без предаване на аргументи води до грешка:

SELECT NUMTODSINTERVAL()
FROM DUAL;

Резултат:

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:

  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

  2. Oracle UTL_FILE чете CSV файлови редове

  3. Как да използвам тип таблица в оператор SELECT FROM?

  4. Вземете името на извикващата процедура или функция в Oracle PL/SQL

  5. Как да съхранявате неограничен брой знаци в Oracle 11g?