Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction NUMTODSINTERVAL() dans Oracle

Dans Oracle Database, le NUMTODSINTERVAL() la fonction convertit un nombre en INTERVAL DAY TO SECOND littéral.

Syntaxe

La syntaxe ressemble à ceci :

NUMTODSINTERVAL(n, 'interval_unit')

Le n l'argument est le nombre pour lequel convertir.

La valeur de interval_unit spécifie l'unité de n et doit correspondre à l'une des valeurs de chaîne suivantes :

  • DAY
  • HOUR
  • MINUTE
  • SECOND

L'interval_unit l'argument est insensible à la casse.

Exemple

Voici un exemple pour illustrer :

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

Résultat :

+00 00:00:01.000000

En voici une autre qui utilise une minute :

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

Résultat :

+00 00:01:00.000000

Fraction de seconde

Par défaut, la précision du retour est 9. En voici une qui spécifie des fractions de secondes dans le premier argument :

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

Résultat :

+00 00:00:10.123456789

Voici ce qui se passe si nous le remplaçons par une autre unité d'intervalle :

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

Résultat :

+10 02:57:46.666569600

Arguments nuls

Passer null pour l'un ou l'autre des arguments, les résultats sont null :

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

Résultat :

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

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Argument manquant

Appeler la fonction avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT NUMTODSINTERVAL()
FROM DUAL;

Résultat :

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: