Вы можете сделать это с помощью trunc(<date>, 'mm')
(который возвращает первый день месяца) и add_months(<date>,1)
, которые добавляют один месяц к определенному дню.Итак, чтобы выяснить, сколько дней в месяце у нас сейчас (т.е. sysdate
), вы можете использовать что-то вроде:
select
add_months(trunc(sysdate, 'mm'),1) - trunc(sysdate, 'mm')
from
dual;