No banco de dados Oracle, o
NUMTODSINTERVAL()
função converte um número em um INTERVAL DAY TO SECOND
literal. Sintaxe
A sintaxe fica assim:
NUMTODSINTERVAL(n, 'interval_unit')
O
n
argumento é o número para o qual converter. O valor para
interval_unit
especifica a unidade de n
e deve resolver para um dos seguintes valores de string:- '
DAY
' - '
HOUR
' - '
MINUTE
' - '
SECOND
'
O
interval_unit
argumento não diferencia maiúsculas de minúsculas. Exemplo
Segue um exemplo para demonstrar:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Resultado:
+00 00:00:01.000000
Aqui está outro que usa um minuto:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Resultado:
+00 00:01:00.000000
Frações de Segundos
Por padrão, a precisão do retorno é 9. Aqui está um que especifica frações de segundos no primeiro argumento:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Resultado:
+00 00:00:10.123456789
Aqui está o que acontece se mudarmos para outra unidade de intervalo:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Resultado:
+10 02:57:46.666569600
Argumentos nulos
Passando
null
para qualquer argumento resulta em null
:SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Resultado:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ null null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que
null
ocorre como resultado de um SQL SELECT
demonstração. No entanto, você pode usar
SET NULL
para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null
deve ser devolvido. Argumento ausente
Chamar a função com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
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: