mapas
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
intervals_between(start_date date, end_date date, duration interval)
Parameters
Name
Type
Mode
start_date
date
IN
end_date
date
IN
duration
interval
IN
Definition
DECLARE count FLOAT := 0; multiplier INT := 512; BEGIN IF start_date > end_date THEN RETURN 0; END IF; LOOP WHILE start_date + (count + multiplier) * duration < end_date LOOP count := count + multiplier; END LOOP; EXIT WHEN multiplier = 1; multiplier := multiplier / 2; END LOOP; count := count + (extract(epoch from end_date) - extract(epoch from (start_date + count * duration))) / (extract(epoch from end_date + duration) - extract(epoch from end_date))::int; RETURN count; END