Опитайте това:
SELECT DATE_ADD(
date_field,
INTERVAL 5 +
IF(
(WEEK(date_field) <> WEEK(DATE_ADD(date_field, INTERVAL 5 DAY)))
OR (WEEKDAY(DATE_ADD(date_field, INTERVAL 5 DAY)) IN (5, 6)),
2,
0)
DAY
) AS FinalDate
FROM `table_name`;
Как работи:
- Първо, това ще добави 5 дни към вашата дата.
- Второ, когато
date_field
и 5 дни по-късно са в две различни седмици, трябва да се добавят още 2 дни. - Трето, когато 5 дни по-късно е
Sat
илиSun
, трябва да се добави още 2 дни.