sql >> Databasteknik >  >> RDS >> Oracle

NUMTODSINTERVAL() Funktion i Oracle

I Oracle Database, NUMTODSINTERVAL() funktionen konverterar ett tal till en INTERVAL DAY TO SECOND bokstavligt.

Syntax

Syntaxen ser ut så här:

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

  • DAY
  • HOUR
  • MINUTE
  • SECOND

interval_unit argument är skiftlägesokänsligt.

Exempel

Här är ett exempel att visa:

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

Resultat:

+00 00:00:01.000000

Här är en annan som använder en minut:

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

Resultat:

+00 00:01:00.000000

Bråkdelar av sekunder

Som standard är precisionen för returen 9. Här är en som anger bråkdelar av sekunder i det första argumentet:

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

Resultat:

+00 00:00:10.123456789

Så här händer om vi ändrar den till en annan intervallenhet:

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

Resultat:

+10 02:57:46.666569600

Nollargument

Skickar null för båda argumenten resulterar i null :

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

Resultat:

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

Resultat:

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. Bästa datatypen för att lagra valutavärden i en MySQL-databas

  2. PGEast, Hardware Benchmarking och PG Performance Farm

  3. java.lang.NoSuchFieldError:NONE i viloläge med Spring 3, maven, JPA, c3p0

  4. Beräkna en löpande summa i MySQL