Domo IDEAs Conference - Beast Modes - Add Business Days

GrantSmith
GrantSmith Indiana 🥷

Greetings! This is another post highlighting a beast mode from my Domo IDEAs conference session. This one covers how to add a specific number of business days into the future.

Problem:

How do I add a specific number of business days?

Solution:

We convert the number of business days into the actual days. Convert the number of business days into full weeks and multiply by 7 to get the total days. Then add the remaining days and some extra days if we cross over a weekend.

-- Author:
-- Created:
-- Last Modified:
-- Description: Add 6 business days to the specific date in the `dt` field.
-- NOTE: This is a lazy calculation which doesn't take into account holidays or other days
-- the business may be closed.
-- ALSO - This assumes M-F as the work week.
`dt` +
-- Calculate the number of days. in this example replace 6 with the number of business days to add
INTERVAL (
  -- Calculate the number of weeks in the number of business days
  FLOOR(6/5) * 7
  -- If the remaining number of days (MOD) would take us past Saturday then add 2 days to get over the weekend.
  + CASE WHEN MOD(6,5) + DAYOFWEEK(`dt`) >= 7 THEN 2 -
  -- This returns either 1 if the date is a Saturday otherwise 0
  -- Does the date start on saturday? If so we only need to add 1 (2-1=1) days to get over the weekend instead of 2.
  FLOOR(DAYOFWEEK(`dt`)/7) ELSE 0 END
  -- Add the remaining number of work days after taking into account full weeks
  + MOD(6,5)) DAY

Notes:

This assumes any Monday-Friday is a business day and doesn't handle Holidays or days the business may be closed.

**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**

Comments