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.