Мой первоначальный ответ на эту проблему состоял в том, чтобы его сценарий. Вместо использования SQL я погрузился в Python и нормализовал их. Мне любопытно, может ли кто-нибудь придумать решение, использующее SQL.SQL - нормализация временных меток к рабочим часам
Если дата происходит вне рабочего времени, я хочу нормализовать дату на следующий рабочий день. Я сделаю это очень просто и скажу, что рабочее время с 9:00 до 18:00 с понедельника по пятницу. Все, что находится за пределами этих часов, находится вне рабочего времени.
Что должно происходить, так это то, что они меняются так, что 2 часа дня в субботу становится 9 утра в понедельник утром (первое законное время на рабочей неделе). 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 утра во вторник.
Четвертая дата в 9 вечера (за пределами наших рабочих часов 9 утра до 6 вечера) в среду и должна быть преобразована в 9 утра в четверг утром.
Нашли ошибку в моем SQL заявление для раз до 9 утра в рабочие дни (например, «2009-09-16 6:07:08»). Сообщение отредактировано с помощью решения – pmg