I Oracle Database er NUMTOYMINTERVAL()
funktion konverterer et tal til et INTERVAL YEAR TO MONTH
bogstaveligt.
Syntaks
Syntaksen ser sådan ud:
NUMTOYMINTERVAL(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:
- ‘
YEAR
' - ‘
MONTH
'
interval_unit
argumentet er ufølsomt for store og små bogstaver.
Eksempel
Her er et eksempel til demonstration:
SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;
Resultat:
+00-01
Her er endnu en, der bruger året:
SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;
Resultat:
+01-00
Brøker
Her er en, der indeholder en brøkdel i det første argument:
SELECT
NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;
Resultat:
Year Month _________ _________ +10-07 +00-11
Skrivar og bogstaver
Det andet argument er ufølsomt mellem store og små bogstaver:
SELECT
NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;
Resultat:
YEAR year __________ __________ +150-00 +150-00
Nul-argumenter
Sender null
for begge argumenter resulterer i null
:
SET NULL 'null';
SELECT
NUMTOYMINTERVAL(1, null),
NUMTOYMINTERVAL(null, 'year')
FROM DUAL;
Resultat:
NUMTOYMINTERVAL(1,NULL) NUMTOYMINTERVAL(NULL,'YEAR') __________________________ _______________________________ 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 NUMTOYMINTERVAL()
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT NUMTOYMINTERVAL() 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: