Определение первого дня недели в MySQL
При работе с диапазонами дат часто необходимо определить первый день недели на данную дату. В MySQL существуют разные подходы в зависимости от желаемого начального дня недели.
Начало недели в воскресенье
Чтобы получить первый день недели, начиная с В воскресенье используйте следующую формулу:
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
Например, для даты 03.01.2011, которая приходится на В понедельник расчет будет выглядеть следующим образом:
DATE_ADD('2011-01-03', INTERVAL(1-DAYOFWEEK('2011-01-03')) DAY)
Результат: 2011- 01-02 (воскресенье)
Начало недели в понедельник
Если вы хотите начать неделю в понедельник, используйте вместо этого следующую формулу:
DATE_ADD(mydate, INTERVAL(-WEEKDAY(mydate)) DAY)
Для той же даты (03.01.2011) вычисление будет следующим:
DATE_ADD('2011-01-03', INTERVAL(-WEEKDAY('2011-01-03')) DAY)
Результат: 03.01.2011 (понедельник)
Применение к запросу
Чтобы включить расчет первого дня недели в запрос для группировки по неделям, вы можете заменить:
date(date_entered) as week
на:
DATE_ADD(date_entered, INTERVAL(1-DAYOFWEEK(date_entered)) DAY) as week
Это обеспечит начало недели в воскресенье. При желании вы можете настроить формулу так, чтобы неделя начиналась с понедельника.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3