转自:http://bbs.csdn.net/topics/370096126
t_table有数据如下:
year Week
2011 2
2011 3
2011 4
2011 5
想知道2011年的第二周起始日期和结束日期是哪2个?
SELECT year, week, x.start, ADDDATE(x.start, 6)AS end
FROM (
SELECT ADDDATE(jan1, (t.week - WEEK(jan1, 5)) * 7 - WEEKDAY(jan1))AS start,year, week
FROM (SELECT MAKEDATE(`year`, 1)AS jan1,year, weekFROM t_table) t
) x;
+------+------+------------+------------+
|year | week | start |end |
+------+------+------------+------------+
| 2011 | 1 | 2011-01-03 | 2011-01-09 |
| 2011 | 2 | 2011-01-10 | 2011-01-16 |
| 2011 | 3 | 2011-01-17 | 2011-01-23 |
| 2011 | 52 | 2011-12-26 | 2012-01-01 |
+------+------+------------+------------+
j