sql >> Database >  >> RDS >> Oracle

NUMTOYMINTERVAL() Functie in Oracle

In Oracle Database, de NUMTOYMINTERVAL() functie converteert een getal naar een INTERVAL YEAR TO MONTH letterlijk.

Syntaxis

De syntaxis gaat als volgt:

NUMTOYMINTERVAL(n, 'interval_unit')

De n argument is het getal waarnaar moet worden geconverteerd.

De waarde voor interval_unit specificeert de eenheid van n en moet worden omgezet in een van de volgende tekenreekswaarden:

  • YEAR
  • MONTH

De interval_unit argument is niet hoofdlettergevoelig.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Resultaat:

+00-01

Hier is er nog een die het jaartal gebruikt:

SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Resultaat:

+01-00

Fracties

Hier is er een die een fractioneel deel bevat in het eerste argument:

SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

Resultaat:

     Year     Month 
_________ _________ 
+10-07    +00-11    

Hoofdlettergevoeligheid

Het tweede argument is niet hoofdlettergevoelig:

SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Resultaat:

      YEAR       year 
__________ __________ 
+150-00    +150-00    

Nullargumenten

Doorgeven van null voor beide argumenten resulteert in null :

SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

Resultaat:

   NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
__________________________ _______________________________ 
null                       null                           

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Ontbrekend argument

Het aanroepen van de functie met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT NUMTOYMINTERVAL()
FROM DUAL;

Resultaat:

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. Een willekeurige en unieke reeks van 8 tekens genereren met MySQL

  2. Verbindingsreeksparameters voor opgeslagen specificaties

  3. Hoe kan ik UUID's gebruiken in SQLAlchemy?

  4. SQL-server negeer hoofdletters in een waar-expressie