V databázi Oracle je to NUMTODSINTERVAL()
funkce převede číslo na INTERVAL DAY TO SECOND
doslovný.
Syntaxe
Syntaxe vypadá takto:
NUMTODSINTERVAL(n, 'interval_unit')
n
argument je číslo, na které se má převést.
Hodnota pro interval_unit
určuje jednotku n
a musí se překládat na jednu z následujících hodnot řetězce:
- „
DAY
„ - „
HOUR
„ - „
MINUTE
„ - ‘
SECOND
„
interval_unit
argument nerozlišuje malá a velká písmena.
Příklad
Zde je příklad k demonstraci:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Výsledek:
+00 00:00:01.000000
Zde je další, který zabere minutu:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Výsledek:
+00 00:01:00.000000
Zlomkové sekundy
Ve výchozím nastavení je přesnost návratu 9. Zde je jedna, která v prvním argumentu určuje zlomky sekund:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Výsledek:
+00 00:00:10.123456789
Co se stane, když ji změníme na jinou intervalovou jednotku:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Výsledek:
+10 02:57:46.666569600
Nulové argumenty
Předávání null
pro oba argumenty je výsledkem null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Výsledek:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ ___________________________________ pre null>Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když
null
dochází v důsledku SQLSELECT
prohlášení.Můžete však použít
SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězecnull
by měl být vrácen.Chybí argument
Volání funkce s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů má za následek chybu:
SELECT NUMTODSINTERVAL() FROM DUAL;
Výsledek:
Chyba začínající na řádku:1 v příkazu -SELECT NUMTODSINTERVAL()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce: