У меня есть сумма всех продаж за неделю в одном объекте, и объект должен отображаться в диаграммах, и у всех графиков должна быть дата по оси x, поэтому
Здесь я рассчитываю дату от года + недели на основе понедельника
SELECT STR_TO_DATE(CONCAT('20131',' Monday'), '%X%V %W');
Я хочу это, основываясь на первом дне года
SELECT DAYNAME(MAKEDATE(2013,1))
Все вместе
SELECT STR_TO_DATE(CONCAT(CONCAT(2013, 1), DAYNAME(MAKEDATE(2013,1))), '%X%V %W')
вернуть '2013-01-08', что является плохим значением, которое мне нужно '2013-01-01'
SELECT STR_TO_DATE(CONCAT(CONCAT(2017, 1), DAYNAME(MAKEDATE(2017,1))), '%X%V %W')
здесь возвращается '2017-01-01', что хорошо
Моя проблема в том, что через несколько лет она ушла на следующую неделю, что плохо
Я не уверен, где и что я делаю неправильно ...
Поэтому, пожалуйста, любая помощь ...
Проблема:
В каком-то году, например, в 2013 году, когда я конвертирую год + неделю в дату, я получаю дату в течение одной дополнительной недели, например, 2013 год + 1 неделя дает 2013-01-08, то есть во вторую неделю вместо первой
но
В какой-то год, например, 2017, когда я конвертирую год + неделю в дату, я получаю дату на нужной неделе, например, 2017 год + 1 неделя дает 2017-01-01
Почему это поведение?