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.