Prøv dette:
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`;
Sådan fungerer det:
- For det første tilføjer den 5 dage på din dato.
- For det andet, når
date_field
og 5 dage senere er i to forskellige uger, skal det tilføjes yderligere 2 dage. - For det tredje, når 5 dage senere er
Sat
ellerSun
, skal det tilføjes yderligere 2 dage.