sql >> Database >  >> RDS >> Oracle

NUMTODSINTERVAL() Functie in Oracle

In Oracle Database is de NUMTODSINTERVAL() functie converteert een getal naar een INTERVAL DAY TO SECOND letterlijk.

Syntaxis

De syntaxis gaat als volgt:

NUMTODSINTERVAL(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:

  • DAY
  • HOUR
  • MINUTE
  • SECOND

De interval_unit argument is niet hoofdlettergevoelig.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;

Resultaat:

+00 00:00:01.000000

Hier is er nog een die een minuut gebruikt:

SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;

Resultaat:

+00 00:01:00.000000

Fractionele seconden

Standaard is de precisie van de return 9. Hier is er een die fractionele seconden specificeert in het eerste argument:

SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;

Resultaat:

+00 00:00:10.123456789

Dit is wat er gebeurt als we het veranderen in een andere intervaleenheid:

SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;

Resultaat:

+10 02:57:46.666569600

Nullargumenten

Doorgeven van null voor beide argumenten resulteert in null :

SET NULL 'null';
SELECT 
    NUMTODSINTERVAL(1, null),
    NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;

Resultaat:

   NUMTODSINTERVAL(1,NULL)    NUMTODSINTERVAL(NULL,'SECOND') 
__________________________ _________________________________ 
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 NUMTODSINTERVAL()
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT NUMTODSINTERVAL()
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. Krijg het aantal records beïnvloed door INSERT of UPDATE in PostgreSQL

  2. Lokale en globale tijdelijke tabellen in SQL Server

  3. Hoe CTE kan helpen bij het schrijven van complexe, krachtige zoekopdrachten:een prestatieperspectief

  4. django.db.utils.ProgrammingError:relatie app_user bestaat niet tijdens de manage.py-test