Мой первоначальный ответ на эту проблему - написать скрипт. Вместо использования SQL я погрузился в Python и нормализовал их. Мне любопытно, может ли кто-нибудь придумать решение, использующее SQL.
Если дата наступает в нерабочее время, я хочу нормализовать дату до следующего рабочего дня. Я сделаю это очень просто и скажу, что рабочие часы с 9:00 до 18:00 с понедельника по пятницу. Все, что не в эти часы, не в рабочие часы.
Что должно произойти, так это то, что даты меняются так, чтобы в субботу 14:00 стало 9:00 утра понедельника (первое допустимое время рабочей недели). 7 вечера в среду становится 9 утра четверга. и т. д. и т. д. Давайте игнорировать праздники.
Пример данных:
mysql> select mydate from mytable ORDER by mydate;
+---------------------+
| mydate |
+---------------------+
| 2009-09-13 17:03:09 |
| 2009-09-14 09:45:49 |
| 2009-09-15 09:57:28 |
| 2009-09-16 21:55:01 |
+---------------------+
4 rows in set (0.00 sec)
Первое свидание - воскресенье, поэтому оно должно быть нормализовано до 2009-09-14 09:00:00
Второе свидание в порядке, оно в 9 утра в понедельник.
Третье свидание в порядке, во вторник 9:00.
Четвертая дата - в 21:00 (в нерабочее время с 9:00 до 18:00) в среду и должна быть преобразована в 9:00 утра четверга.