sql >> Databasteknik >  >> RDS >> Oracle

NUMTOYMINTERVAL() Funktion i Oracle

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:

  1. NHibernate-mappning för Oracle INTERVAL DAY TO SECOND datatyp

  2. UPSERT till tabell med dynamiskt tabellnamn

  3. Hur man får medarbetarna med sina chefer

  4. Kommer ett SQL Server Job att hoppa över en schemalagd körning om den redan körs?