Essayez ceci :
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`;
Comment ça marche :
- Tout d'abord, cela ajoutera 5 jours à votre rendez-vous.
- Deuxièmement, lorsque
date_field
et 5 jours plus tard sont dans deux semaines différentes, il faut ajouter 2 jours supplémentaires. - Troisièmement, lorsque 5 jours plus tard, c'est
Sat
ouSun
, il faut ajouter 2 jours supplémentaires.