知道周求时间范围

 
SET DATEFIRST 1

declare @strTime nvarchar(50);
set @strTime='week8'; --8月

declare @CurYear int;
select @CurYear=datepart(year,GETDATE());
declare @dateFirstDayOfYear datetime; --年的第一天
declare @dateFirstDayOfWeek datetime;--周的第一天
declare  @dateLastDayOfWeek datetime;--周的最后一天
declare @whichtime nvarchar(50); --月或周的数量
declare @startTime datetime; --月的第一天
declare @EndTime datetime; --月的最后一天
declare @Monthlocation int; --月字段的位置
declare @WeekLocation int; --周字段的位置
set @Monthlocation=charindex('月',@strTime);
set @WeekLocation=charindex('week',@strTime);
--求月时间范围
if(@Monthlocation>0)
begin
 set @whichtime=replace(@strTime,'月','');
 set @startTime=cast((cast(@CurYear as varchar(4))+'-'+@whichtime+'-1') as datetime);
 set @EndTime=dateadd(day,-1,dateadd(month,1,@startTime));
 
 select @startTime,@EndTime;
end

--求周时间范围
if(@WeekLocation>0)
begin
 set @whichtime=replace(@strTime,'week','');
 set @dateFirstDayOfYear=cast((cast(@CurYear as varchar(4))+'-1-1') as datetime);
 set @dateFirstDayOfWeek=dateadd(day,1-datePart(weekday,@dateFirstDayOfYear),dateAdd(week,@whichtime-1,@dateFirstDayOfYear));
 set @dateLastDayOfWeek=dateadd(day,6,@dateFirstDayOfWeek);
    select @dateFirstDayOfWeek,@dateLastDayOfWeek;
end

 

转载于:https://www.cnblogs.com/lgxll/archive/2012/09/07/2674596.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值