我有这张桌子:
Date month DayOfWeek
2014-01-01 1 3
2014-01-02 1 4
2014-01-03 1 5
2014-01-04 1 6
2014-01-05 1 7
...... ..... .......
2014-02-01 2 8
...... ..... .....
Run Code Online (Sandbox Code Playgroud)
我想获得本月的所有第三个星期日,所以:
Date month
2014-01-19 1
2014-02-16 2
Run Code Online (Sandbox Code Playgroud)
我首先开始做:
SELECT CAST(
CASE
WHEN [DayOfWeek] = 7
THEN 1
ELSE 0
END AS bit) as Result, [date], [month]
FROM mytable
Run Code Online (Sandbox Code Playgroud)
哪个给:
Result date month
0 2014-01-01 1
0 2014-01-02 1
0 2014-01-03 1
0 2014-01-04 1
1 2014-01-05 1
....
Run Code Online (Sandbox Code Playgroud)
所以这给了我整个星期天,我的最初想法是计算每个月的Result为1并获得第三个日期
如何在sql server中做到这一点?
尝试这个。第三个星期日,只能在15日到21日之间。
SELECT CAST(
CASE
WHEN [DayOfWeek] = 7 AND DatePart(day,[Date]) between 15 and 21
THEN 1
ELSE 0
END AS bit) as Result, [date], [month]
FROM mytable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |