In Oracle Database is de NUMTODSINTERVAL()
functie converteert een getal naar een INTERVAL DAY TO SECOND
letterlijk.
Syntaxis
De syntaxis gaat als volgt:
NUMTODSINTERVAL(n, 'interval_unit')
De n
argument is het getal waarnaar moet worden geconverteerd.
De waarde voor interval_unit
specificeert de eenheid van n
en moet worden omgezet in een van de volgende tekenreekswaarden:
- ‘
DAY
‘ - ‘
HOUR
‘ - ‘
MINUTE
‘ - ‘
SECOND
‘
De interval_unit
argument is niet hoofdlettergevoelig.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Resultaat:
+00 00:00:01.000000
Hier is er nog een die een minuut gebruikt:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Resultaat:
+00 00:01:00.000000
Fractionele seconden
Standaard is de precisie van de return 9. Hier is er een die fractionele seconden specificeert in het eerste argument:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Resultaat:
+00 00:00:10.123456789
Dit is wat er gebeurt als we het veranderen in een andere intervaleenheid:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Resultaat:
+10 02:57:46.666569600
Nullargumenten
Doorgeven van null
voor beide argumenten resulteert in null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Resultaat:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null
treedt op als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ontbrekend argument
Het aanroepen van de functie met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT NUMTODSINTERVAL()
FROM DUAL;
Resultaat:
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: