Zkuste toto:
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`;
Jak to funguje:
- Nejprve vám k datu přidá 5 dní.
- Zadruhé, když
date_field
a 5 dní později je ve dvou různých týdnech, je třeba přidat další 2 dny. - Za třetí, když je o 5 dní později
Sat
neboSun
, je třeba přidat další 2 dny.