Oracle
 sql >> Database >  >> RDS >> Oracle

NUMTODSINTERVAL() Funzione in Oracle

In Oracle Database, il NUMTODSINTERVAL() la funzione converte un numero in un INTERVAL DAY TO SECOND letterale.

Sintassi

La sintassi è questa:

NUMTODSINTERVAL(n, 'interval_unit')

Il n argomento è il numero per cui convertire.

Il valore per interval_unit specifica l'unità di n e deve risolversi in uno dei seguenti valori di stringa:

  • 'DAY '
  • 'HOUR '
  • 'MINUTE '
  • 'SECOND '

L'interval_unit l'argomento non fa distinzione tra maiuscole e minuscole.

Esempio

Ecco un esempio da dimostrare:

SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;

Risultato:

+00 00:00:01.000000

Eccone un altro che impiega un minuto:

SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;

Risultato:

+00 00:01:00.000000

Secondi frazionari

Per impostazione predefinita, la precisione del ritorno è 9. Eccone uno che specifica i secondi frazionari nel primo argomento:

SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;

Risultato:

+00 00:00:10.123456789

Ecco cosa succede se lo cambiamo in un'altra unità di intervallo:

SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;

Risultato:

+10 02:57:46.666569600

Argomenti nulli

Passaggio null per entrambi gli argomenti risulta null :

SET NULL 'null';
SELECT 
    NUMTODSINTERVAL(1, null),
    NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;

Risultato:

   NUMTODSINTERVAL(1,NULL)    NUMTODSINTERVAL(NULL,'SECOND') 
__________________________ _________________________________ 
null                       null                             

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Argomento mancante

Chiamando la funzione con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT NUMTODSINTERVAL()
FROM DUAL;

Risultato:

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: