以第一个周一算周次
今天遇到计算周次的问题,最大问题是,以一年的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