Prova questo:
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`;
Come funziona:
- In primo luogo, aggiungerà 5 giorni alla tua data.
- In secondo luogo, quando
date_field
e 5 giorni dopo sono in due settimane diverse, devono essere aggiunti altri 2 giorni. - In terzo luogo, quando 5 giorni dopo è
Sat
oSun
, devono essere aggiunti altri 2 giorni.