Ето няколко начина да върнете броя на дните в даден месец в 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)
функцията връща дадената стойност за дата с частта от времето от деня, съкратена до единицата, предоставена в посочения модел на формат.