Ето няколко начина да върнете броя на дните в даден месец в Oracle Database. Това може да бъде броят на дните в текущия месец или броят на дните в месеца въз основа на определена дата.
Опция 1
Ето първата ни опция:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL; Резултат:
31
LAST_DAY() функцията връща последния ден от месеца въз основа на посочената дата. Като предадете това на TO_CHAR() с формат DD за деня от месеца получаваме номера на последния ден от месеца. Това число представлява броя на дните в месеца.
След това използваме CAST() функция за преобразуване на резултата в цяло число.
Опция 2
Ето още една опция:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL; Резултат:
30
TRUNC(date) функцията връща дадената стойност за дата с частта от времето от деня, съкратена до единицата, предоставена в посочения модел на формат.