I Oracle Database er NUMTODSINTERVAL()
funktion konverterer et tal til en INTERVAL DAY TO SECOND
bogstaveligt.
Syntaks
Syntaksen ser sådan ud:
NUMTODSINTERVAL(n, 'interval_unit')
n
argument er det tal, der skal konverteres til.
Værdien for interval_unit
angiver enheden for n
og skal løses til en af følgende strengværdier:
- ‘
DAY
' - ‘
HOUR
' - ‘
MINUTE
' - ‘
SECOND
'
interval_unit
argumentet er ufølsomt for store og små bogstaver.
Eksempel
Her er et eksempel til demonstration:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Resultat:
+00 00:00:01.000000
Her er en anden, der bruger et minut:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Resultat:
+00 00:01:00.000000
Brøksekunder
Som standard er præcisionen af returneringen 9. Her er en, der angiver brøkdele sekunder i det første argument:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Resultat:
+00 00:00:10.123456789
Her er, hvad der sker, hvis vi ændrer den til en anden intervalenhed:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Resultat:
+10 02:57:46.666569600
Nul-argumenter
Sender null
for begge argumenter resulterer i null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Resultat:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ null null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Manglende argument
Kaldning af funktionen med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer i en fejl:
SELECT NUMTODSINTERVAL()
FROM DUAL;
Resultat:
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: