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: