Prova detta:
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`;
Hur det fungerar:
- För det första lägger det till 5 dagar på ditt datum.
- För det andra, när
date_field
och 5 dagar senare är i två olika veckor, måste det läggas till ytterligare 2 dagar. - För det tredje, när 5 dagar senare är
Sat
ellerSun
, måste den läggas till ytterligare 2 dagar.