In der Oracle-Datenbank das NUMTODSINTERVAL()
Funktion wandelt eine Zahl in ein INTERVAL DAY TO SECOND
um wörtlich.
Syntax
Die Syntax lautet wie folgt:
NUMTODSINTERVAL(n, 'interval_unit')
Das n
Argument ist die Zahl, für die konvertiert werden soll.
Der Wert für interval_unit
gibt die Einheit von n
an und muss in einen der folgenden Zeichenfolgenwerte aufgelöst werden:
- ‘
DAY
‘ - ‘
HOUR
‘ - ‘
MINUTE
‘ - ‘
SECOND
‘
Die interval_unit
Beim Argument wird die Groß-/Kleinschreibung nicht beachtet.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Ergebnis:
+00 00:00:01.000000
Hier ist eine weitere, die eine Minute benötigt:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Ergebnis:
+00 00:01:00.000000
Sekundenbruchteile
Standardmäßig ist die Genauigkeit der Rückgabe 9. Hier ist eine, die Sekundenbruchteile im ersten Argument angibt:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Ergebnis:
+00 00:00:10.123456789
Folgendes passiert, wenn wir es in eine andere Intervalleinheit ändern:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Ergebnis:
+10 02:57:46.666569600
Null-Argumente
Übergabe von null
für beide Argumente ergibt sich null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Ergebnis:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Fehlendes Argument
Der Aufruf der Funktion mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT NUMTODSINTERVAL()
FROM DUAL;
Ergebnis:
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: