Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja NUMTOYMINTERVAL() w Oracle

W bazie danych Oracle NUMTOYMINTERVAL() funkcja konwertuje liczbę na INTERVAL YEAR TO MONTH dosłowne.

Składnia

Składnia wygląda tak:

NUMTOYMINTERVAL(n, 'interval_unit')

n argument jest liczbą, na którą należy przekonwertować.

Wartość interval_unit określa jednostkę n i musi zostać rozwiązany do jednej z następujących wartości ciągu:

  • YEAR
  • MONTH

interval_unit w argumentach nie jest rozróżniana wielkość liter.

Przykład

Oto przykład do zademonstrowania:

SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Wynik:

+00-01

Oto kolejny, który używa roku:

SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Wynik:

+01-00

Ułamki

Oto taki, który zawiera część ułamkową w pierwszym argumencie:

SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

Wynik:

     Year     Month 
_________ _________ 
+10-07    +00-11    

Wrażliwość na wielkość liter

Drugi argument nie uwzględnia wielkości liter:

SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Wynik:

      YEAR       year 
__________ __________ 
+150-00    +150-00    

Argumenty zerowe

Przekazywanie null dla każdego argumentu wynik w null :

SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

Wynik:

   NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
__________________________ _______________________________ 
null                       null                           

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Brakujący argument

Wywołanie funkcji z niewłaściwą liczbą argumentów lub bez przekazania żadnych argumentów skutkuje błędem:

SELECT NUMTOYMINTERVAL()
FROM DUAL;

Wynik:

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. Formatowanie DATE w Oracle

  2. Tworzenie tabeli i wstawianie w ramach tej samej procedury w pl/sql

  3. Korzystanie z funkcji przestawnej na wielu kolumnach wiersza Oracle

  4. Jak wykonać funkcję w Oracle z parametrami

  5. Jak działa pobieranie danych z SQL Server do SqlDataReader?