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

NUMTOYMINTERVAL() Funzione in Oracle

In Oracle Database, il NUMTOYMINTERVAL() la funzione converte un numero in un INTERVAL YEAR TO MONTH letterale.

Sintassi

La sintassi è questa:

NUMTOYMINTERVAL(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:

  • 'YEAR '
  • MONTH '

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

Esempio

Ecco un esempio da dimostrare:

SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Risultato:

+00-01

Eccone un altro che utilizza l'anno:

SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Risultato:

+01-00

Frazioni

Eccone uno che contiene una parte frazionaria nel primo argomento:

SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

Risultato:

     Year     Month 
_________ _________ 
+10-07    +00-11    

Maiuscole/minuscole

Il secondo argomento non fa distinzione tra maiuscole e minuscole:

SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Risultato:

      YEAR       year 
__________ __________ 
+150-00    +150-00    

Argomenti nulli

Passaggio null per entrambi gli argomenti risulta null :

SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

Risultato:

   NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
__________________________ _______________________________ 
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 NUMTOYMINTERVAL()
FROM DUAL;

Risultato:

Error starting at line : 1 in command -
SELECT NUMTOYMINTERVAL()
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: