Her er et par måder at returnere antallet af dage i en given måned i Oracle Database. Dette kan være antallet af dage i den aktuelle måned eller antallet af dage i en måned baseret på en specificeret dato.
Mulighed 1
Her er vores første mulighed:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;
Resultat:
31
LAST_DAY()
funktion returnerer den sidste dag i måneden baseret på den angivne dato. Ved at sende dette til TO_CHAR()
med formatet DD
for dagen i måneden får vi nummeret på den sidste dag i måneden. Dette tal repræsenterer antallet af dage i måneden.
Vi bruger derefter CAST()
funktion til at konvertere resultatet til et heltal.
Mulighed 2
Her er en anden mulighed:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;
Resultat:
30
TRUNC(date)
funktion returnerer den givne datoværdi med tidsdelen af dagen afkortet til den enhed, der er angivet i den specificerede formatmodel.