以下是我所拥有的
date
+++++++++++++
2012-02-01
2012-02-03
2012-02-05
2012-02-07
2012-02-08
2012-02-10
2012-02-14
2012-02-15
2012-02-17
2012-02-17
2012-03-01
2012-03-03
2012-03-05
2012-03-07
我想要的是如下
week| date
++++++++++++++++++
1 | 2012-02-01
1 | 2012-02-03
1 | 2012-02-05
1 | 2012-02-07
2 | 2012-02-08
2 | 2012-02-10
2 | 2012-02-14
3 | 2012-02-15
3 | 2012-02-17
3 | 2012-02-17
4 | 2012-03-01
4 | 2012-03-03
4 | 2012-03-05
4 | 2012-03-07
我试过了
SELECT WEEKDAY(date) AS week, date
FROM myTable
WHERE date BETWEEN start_date AND end_date
ORDER BY week
下面是我得到的
week| date
++++++++++++++++++
1 | 2012-02-01
1 | 2012-02-03
1 | 2012-02-05
1 | 2012-02-07
1 | 2012-03-01
1 | 2012-03-03
1 | 2012-03-05
1 | 2012-03-07
2 | 2012-02-08
2 | 2012-02-10
2 | 2012-02-14
3 | 2012-02-15
3 | 2012-02-17
3 | 2012-02-17
这是不正确的,因为 2012-03-01
以后显示为 1,应该是 4...让我知道我错在哪里...
提前致谢!!!
此问题与 this 相关
最佳答案
使用 WEEKDAY 使用 WEEKOFYEAR
SELECT WEEKOFYEAR(date) AS week, date
FROM myTable
WHERE date BETWEEN start_date AND end_date
ORDER BY week
更新 This question is the source
SELECT (WEEK(date, 5) -
WEEK(DATE_SUB(date, INTERVAL DAYOFMONTH(date) - 1 DAY), 5) + 1) as week, date
FROM myTable
WHERE date BETWEEN start_date AND end_date
ORDER BY week
更新2
SELECT (WEEK(date, 1) -
WEEK(DATE_SUB(date, INTERVAL DAYOFMONTH(date) - 1 DAY), 1) + 1) as week, date
FROM myTable
WHERE date BETWEEN start_date AND end_date
ORDER BY week
关于mysql - 按日期显示周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276085/