sql >> Base de Datos >  >> RDS >> Oracle

Función NUMTODSINTERVAL() en Oracle

En Oracle Database, el NUMTODSINTERVAL() función convierte un número a un INTERVAL DAY TO SECOND literal.

Sintaxis

La sintaxis es así:

NUMTODSINTERVAL(n, 'interval_unit')

El n argumento es el número por el cual convertir.

El valor de interval_unit especifica la unidad de n y debe resolverse en uno de los siguientes valores de cadena:

  • DAY
  • HOUR
  • MINUTE
  • SECOND

La interval_unit el argumento no distingue entre mayúsculas y minúsculas.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

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

Resultado:

+00 00:00:01.000000

Aquí hay otro que usa un minuto:

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

Resultado:

+00 00:01:00.000000

Segundos fraccionarios

De forma predeterminada, la precisión de la devolución es 9. Aquí hay uno que especifica segundos fraccionarios en el primer argumento:

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

Resultado:

+00 00:00:10.123456789

Esto es lo que sucede si lo cambiamos a otra unidad de intervalo:

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

Resultado:

+10 02:57:46.666569600

Argumentos nulos

Pasando null para cualquier argumento da como resultado null :

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

Resultado:

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

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre como resultado de un SQL SELECT declaración.

Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.

Argumento faltante

Llamar a la función con el número incorrecto de argumentos, o sin pasar ningún argumento, genera un error:

SELECT NUMTODSINTERVAL()
FROM DUAL;

Resultado:

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: