Oto kilka sposobów na zwrócenie liczby dni w danym miesiącu w Oracle Database. Może to być liczba dni w bieżącym miesiącu lub liczba dni w miesiącu na podstawie określonej daty.
Opcja 1
Oto nasza pierwsza opcja:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;
Wynik:
31
LAST_DAY()
funkcja zwraca ostatni dzień miesiąca na podstawie podanej daty. Przekazując to do TO_CHAR()
w formacie DD
za dzień miesiąca otrzymujemy numer ostatniego dnia miesiąca. Ta liczba reprezentuje liczbę dni w miesiącu.
Następnie używamy CAST()
funkcja konwertująca wynik na liczbę całkowitą.
Opcja 2
Oto kolejna opcja:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;
Wynik:
30
TRUNC(date)
funkcja zwraca podaną wartość daty z częścią czasową dnia skróconą do jednostki podanej w określonym modelu formatu.