首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何抓某年月第二个周一是几号,在线结贴.

2012-01-06 
怎么抓某年月第二个周一是几号,在线结贴..怎么抓某年月第二个周一是几号,在线结贴..[解决办法]declare @s

怎么抓某年月第二个周一是几号,在线结贴..
怎么抓某年月第二个周一是几号,在线结贴..

[解决办法]
declare @s varchar(20)
set @s= '2007-6 ' --年月

select top 1 @s+ '- '+cast(d as varchar)
from (
select 1 as d
union all
select 2
union all
select 3
union all
select 4
union all
select 5
union all
select 6
union all
select 7
union all
select 8
union all
select 9
union all
select 10
union all
select 11
union all
select 12
union all
select 13
) as t
where datepart(weekday,@s+ '- '+cast(d as varchar))=2
order by d desc

[解决办法]
declare @s varchar(20)
declare @t datetime
set @s= '2007-6 '
set @t=convert(datetime,@s+ '-1 ')
select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,@t),@t) ), 7)

--结果:2007-6-11
[解决办法]
declare @s varchar(20)
set @s= '2007-7 '
set @s=@s+ '-1 '
select dateadd(dd,9-DATEPART(dw,@s),@s)
[解决办法]
set datefirst 1
declare @d varchar(20)
set @d= '200706 '

set @d=@d+ '01 '
select dateadd(day,15-DATEPART(weekday,@d),@d)
[解决办法]
DECLARE @y nvarchar(5)
declare @m nvarchar(2)
set @y= '2007 '
set @m= '12 '
declare @a datetime
set @a=@y+ '- '+@m+ '-1 '
select dateadd(d,(8-(datepart(dw,@a)-1))%7+7,@a)


--2007-12-10 00:00:00.000

热点排行