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: