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: