first of all i know that this has been asked before, and there are some really good answers, but not 100% correct, since my reputation is low I can't post comments. My question is how to add days in MySQL excluding weekends, for example the day 1/8/2018 if we add 20 days the results should be 1/29/2018, most of the forum answers are like the following SELECT StartDate,Expected Date,DATE_FORMAT( DATE_ADD(StartDate, INTERVAL Expected Date + IF( (WEEK(StartDate) <> WEEK(DATE_ADD(StartDate, INTERVAL Expected Date DAY))) OR (WEEKDAY(DATE_ADD(StartDate, INTERVAL Expected Date DAY)) IN (5, 6)), IF( Expected Date >0, 2, -2 ), 0) DAY ) , '%y-%m-%d') as FinalDate from table, THIS WORKS but for low numbers where it will encounter just one weekend, I do change the formula to accept minus add days. I know the tricky part is around IF( Expected Date >0, 2, -2 ), where it add or delete more days if its weekend, but cant find a way to figure it out if there are more than 1 weekend in between. i hope I make my self clear and some could help me. Similar post but not 100% right Here Thank you