以第一个周一算周次

今天遇到计算周次的问题,最大问题是,以一年的1月一号位开始算第一周还是以第一个周一算,查了很多网友的写的方法都是以一年的一月一号开始计算的

sql2000的数据库基本函数也是这么算了

所以就自己写了个函数 用来计算以一年第一个周一算的周次

下面是我写数据库函数

CREATE FUNCTION [dbo].[GetWeek] (@date char(10)) 
RETURNS int  AS 
BEGIN
declare @Oldyear char(4)
declare @strdate char(10)
declare @strweek int
declare @newdate char(10)
declare @weekresult int
select @Oldyear=datepart(yyyy,@date),
@strdate=@Oldyear+'-01-01'
select @strweek=datepart(dw,@strdate),
@strweek=2-@strweek
select @newdate=dateAdd(dd,@strweek,@strdate)
if(datepart(dw,@date)=1)
(
select @weekresult=datediff(wk,@newdate,@date)
)
else
(
select @weekresult=datediff(wk,@newdate,@date)+1
)
return @weekresult
END

 

 

 

posted @ 2012-04-08 15:13  旋转之刃  阅读(239)  评论(0编辑  收藏  举报