鑑於MySQL 5中的日期時間列,我想了解一週中的哪一天?如何在MySql中發現DayOfTheWeek給定日期時間?
但是,DAYOFWEEK函數在星期天返回1。
我想要1表示星期一,2星期二等,7表示星期天。
是否有一個實現此功能的單線程(可以嵌入到更大的SQL語句中)?
f(x) => y
such that:
f(1) = 7
f(n) = n-1 for n in range [2,7]
鑑於MySQL 5中的日期時間列,我想了解一週中的哪一天?如何在MySql中發現DayOfTheWeek給定日期時間?
但是,DAYOFWEEK函數在星期天返回1。
我想要1表示星期一,2星期二等,7表示星期天。
是否有一個實現此功能的單線程(可以嵌入到更大的SQL語句中)?
f(x) => y
such that:
f(1) = 7
f(n) = n-1 for n in range [2,7]
一個純粹的算術公式是
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
當然,這比採用模運算;-)
您可以嘗試 CASE當n = 1,則7 ELSE N-END
它的工作少了很多樂趣,但。真棒。 – 2009-12-01 07:55:23