これを試してください:
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`;
仕組み:
- まず、日付に5日が追加されます。
- 次に、
date_field
の場合 5日後は2週間後なので、さらに2日追加する必要があります。 - 第3に、5日後が
Sat
の場合 またはSun
、さらに2日追加する必要があります。