gho*_*use 1 sql sql-server-2008
我在表格中有一个日期列,我希望根据该日期的月份获得该特定日期的周数,而不管当天的日期
例如:
01-dec-2012 to 07-dec-2012 should give week number as 1
08-dec-2012 to 14-dec-2012 should give week number as 2
15-dec-2012 to 21-dec-2012 should give week number as 3
22-dec-2012 to 28-dec-2012 should give week number as 4
29-dec-2012 to 31-dec-2012 should give week number as 5
Run Code Online (Sandbox Code Playgroud)
本周数不依赖于一周的开始日,即它可以是任何一天
如何编写select语句以在SQL Server 2008中获取此输出?
你可以使用DAY(Transact-SQL)
select ((day(DateColumn)-1) / 7) + 1
from YourTable
Run Code Online (Sandbox Code Playgroud)
MS SQL Server 2012架构设置:
create table YourTable
(
D datetime
)
insert into YourTable
select getdate()+Number
from master..spt_values
where type = 'P' and
Number between 1 and 15
Run Code Online (Sandbox Code Playgroud)
查询1:
select D,
((day(D)-1) / 7) + 1 as W
from YourTable
Run Code Online (Sandbox Code Playgroud)
结果:
| D | W |
--------------------------------------
| January, 03 2013 07:48:54+0000 | 1 |
| January, 04 2013 07:48:54+0000 | 1 |
| January, 05 2013 07:48:54+0000 | 1 |
| January, 06 2013 07:48:54+0000 | 1 |
| January, 07 2013 07:48:54+0000 | 1 |
| January, 08 2013 07:48:54+0000 | 2 |
| January, 09 2013 07:48:54+0000 | 2 |
| January, 10 2013 07:48:54+0000 | 2 |
| January, 11 2013 07:48:54+0000 | 2 |
| January, 12 2013 07:48:54+0000 | 2 |
| January, 13 2013 07:48:54+0000 | 2 |
| January, 14 2013 07:48:54+0000 | 2 |
| January, 15 2013 07:48:54+0000 | 3 |
| January, 16 2013 07:48:54+0000 | 3 |
| January, 17 2013 07:48:54+0000 | 3 |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8592 次 |
| 最近记录: |