Oracle
 sql >> Datenbank >  >> RDS >> Oracle

NUMTODSINTERVAL()-Funktion in Oracle

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: