I Oracle Database, NUMTOYMINTERVAL()
funktionen konverterar ett tal till ett INTERVAL YEAR TO MONTH
bokstavligt.
Syntax
Syntaxen ser ut så här:
NUMTOYMINTERVAL(n, 'interval_unit')
n
argument är det tal som ska konverteras till.
Värdet för interval_unit
anger enheten för n
och måste lösas till ett av följande strängvärden:
- ‘
YEAR
’ - ‘
MONTH
’
interval_unit
argument är skiftlägesokänsligt.
Exempel
Här är ett exempel att visa:
SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;
Resultat:
+00-01
Här är en annan som använder året:
SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;
Resultat:
+01-00
Bråk
Här är en som innehåller en bråkdel i det första argumentet:
SELECT
NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;
Resultat:
Year Month _________ _________ +10-07 +00-11
Skaftkänslighet
Det andra argumentet är skiftlägesokänsligt:
SELECT
NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;
Resultat:
YEAR year __________ __________ +150-00 +150-00
Nollargument
Skickar null
för båda argumenten resulterar 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 returnerar SQLcl och SQL*Plus ett tomt utrymme när null
uppstår som ett resultat av en SQL SELECT
påstående.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Argument saknas
Att anropa funktionen med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
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: