1

例如。

这个月是 2012 年 12 月,我们知道 2012 年这个月的所有星期日都是 2、9、16、23、30。

谁能告诉我如何使用mysql查询在一个月内获得如下所示的所有星期天?

 _ _ _ _ _ _
|  Sundays  |
|- - - - - -| 
|    2      |
|    9      |
|    16     |
|    23     |
|    30     |
 - - - - - - 
4

1 回答 1

2

这是一个 SQLFiddle 演示

select DATE_ADD('2012-12-01', INTERVAL ROW DAY) as Date,
row+1  as DayOfMonth from

(
SELECT @row := @row + 1 as row FROM 
(select 0 union all select 1 union all select 3 
        union all select 4 union all select 5 union all select 6) t1,
(select 0 union all select 1 union all select 3 
        union all select 4 union all select 5 union all select 6) t2, 
(SELECT @row:=-1) t3 limit 31
) b
where 
DATE_ADD('2012-12-01', INTERVAL ROW DAY)
between '2012-12-01' and '2012-12-31'
and
DAYOFWEEK(DATE_ADD('2012-12-01', INTERVAL ROW DAY))=1
于 2012-12-07T12:29:01.223 回答