AdvancedDate & Time Functions
Business days calculation (excluding weekends)
The query
SQL
SELECT
start_date,
end_date,
(end_date - start_date) AS calendar_days,
-- Business days (rough calculation)
(end_date - start_date)
- (FLOOR((EXTRACT(DOW FROM start_date) + (end_date - start_date)) / 7) * 2)::INT
+ CASE WHEN EXTRACT(DOW FROM start_date) = 0 THEN 1 ELSE 0 END
+ CASE WHEN EXTRACT(DOW FROM end_date) = 6 THEN -1 ELSE 0 END AS business_days
FROM projects;Note
“Business day calculation is complex. Consider creating a calendar table for accurate results.