W bazie danych Oracle NUMTODSINTERVAL()
funkcja konwertuje liczbę na INTERVAL DAY TO SECOND
dosłowne.
Składnia
Składnia wygląda tak:
NUMTODSINTERVAL(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:
- „
DAY
‘ - „
HOUR
‘ - „
MINUTE
‘ - „
SECOND
‘
interval_unit
w argumentach nie jest rozróżniana wielkość liter.
Przykład
Oto przykład do zademonstrowania:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Wynik:
+00 00:00:01.000000
Oto kolejny, który zajmuje minutę:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Wynik:
+00 00:01:00.000000
Sekundy ułamkowe
Domyślna precyzja zwrotu wynosi 9. Oto taka, która określa ułamki sekund w pierwszym argumencie:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Wynik:
+00 00:00:10.123456789
Oto, co się stanie, jeśli zmienimy ją na inną jednostkę interwału:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Wynik:
+10 02:57:46.666569600
Argumenty zerowe
Przekazywanie null
dla każdego argumentu wynik w null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Wynik:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ 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 NUMTODSINTERVAL()
FROM DUAL;
Wynik:
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: