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.