Coba ini:
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`;
Cara kerjanya:
- Pertama, tanggal Anda akan bertambah 5 hari.
- Kedua, ketika
date_field
dan 5 hari kemudian dalam dua minggu yang berbeda, harus ditambah 2 hari lagi. - Ketiga, jika 5 hari kemudian adalah
Sat
atauSun
, harus ditambah 2 hari lagi.