Zde je několik způsobů, jak vrátit počet dní v daném měsíci v databázi Oracle. Může to být počet dní v aktuálním měsíci nebo počet dní v měsíci na základě zadaného data.
Možnost 1
Zde je naše první možnost:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;
Výsledek:
31
LAST_DAY()
Funkce vrací poslední den v měsíci na základě zadaného data. Předáním tomuto do TO_CHAR()
ve formátu DD
pro den v měsíci získáme číslo posledního dne v měsíci. Toto číslo představuje počet dní v měsíci.
Potom použijeme CAST()
funkce pro převod výsledku na celé číslo.
Možnost 2
Zde je další možnost:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;
Výsledek:
30
TRUNC(date)
funkce vrací danou hodnotu data s časovou částí dne zkrácenou na jednotku poskytnutou v zadaném modelu formátu.