A чисто арифметическая формула is
SELECT ((DAYOFWEEK(myDate) + 5) % 7) + 1 AS MondayBasedDOW
Хотя в SQL мы часто решаем это с помощью оператора CASE (ответ Астендера)
SELECT CASE WHEN DAYOFWEEK(myDate) = 1 THEN 7 ELSE DAYOFWEEK(myDate) -1 END
AS MondayBasedDOW
Теперь ... MySQL также предоставляет функцию WEEKDAY () , аналогичную DAYOFWEEK () , но
- понедельник на основе
- Нулевой на основе
т.е. Понедельник = 0, вторник = 1 ... воскресенье = 6
Так что вы можете просто использовать
SELECT WEEKDAY(myDate) + 1 AS MondayBasedDOW
но, конечно, это гораздо менее весело, чем использовать арифметику по модулю; -)