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.