原創,以一年的第一個周一算周次
今天遇到計算周次的問題,最大問題是,以一年的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

浙公網安備 33010602011771號