sql >> Databasteknik >  >> RDS >> Oracle

2 sätt att få antalet dagar i en månad i Oracle

Här är ett par sätt att returnera antalet dagar i en given månad i Oracle Database. Detta kan vara antalet dagar i den aktuella månaden eller antalet dagar i en månad baserat på ett angivet datum.

Alternativ 1

Här är vårt första alternativ:

SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;

Resultat:

31

LAST_DAY() funktion returnerar den sista dagen i månaden baserat på det angivna datumet. Genom att skicka detta till TO_CHAR() med formatet DD för dagen i månaden får vi numret på den sista dagen i månaden. Det siffran representerar antalet dagar i månaden.

Vi använder sedan CAST() funktion för att konvertera resultatet till ett heltal.

Alternativ 2

Här är ett annat alternativ:

SELECT 
    TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;

Resultat:

30

TRUNC(date) funktion returnerar det givna datumvärdet med tidsdelen av dagen trunkerad till den enhet som tillhandahålls i den specificerade formatmodellen.


  1. Sammanföra två tabeller med olika antal kolumner

  2. PIVOT-fråga på distinkta poster

  3. Mäter du SQL Server-prestanda med dessa mätvärden?

  4. Postgres:Hur konverterar man en json-sträng till text?