Конечно, вы можете сделать это, используя некоторую математическую дату и функцию ДНЕЙ, сравнивая количество дней между начальной и конечной датой с количеством дней между начальной и конечной датами, когда они были сдвинутына 1 год.
Если число дней между двумя датами одинаково в обоих случаях, то високосного дня не произошло.Если количество дней отличается, то существует не менее 1 високосного дня.
Это выражение будет возвращать количество високосных дней:
select
( DAYS(end_date + 1 year) - DAYS(start_date + 1 year) ) -
( DAYS(end_date) - DAYS(start_date) )
from
sysibm.sysdummy1
Это должно работать до тех пор, пока end_date>= start_date.
Тривиально инкапсулировать это в скалярную пользовательскую функцию.