SetISOWeek
Return
Return Type |
---|
tinyint |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@dt | smalldatetime | IN |
Definition
Copy
-- a function to yield the same week number as the ISO standard
CREATE FUNCTION [dbo].[SetISOWeek]
(
@dt SMALLDATETIME
)
RETURNS TINYINT
AS
BEGIN
DECLARE @ISOweek TINYINT
SET @ISOweek = DATEPART(WEEK,@dt)+1
-DATEPART(WEEK,RTRIM(YEAR(@dt))+'0104')
IF @ISOweek = 0
BEGIN
SET @ISOweek = dbo.SetISOWeek
(
RTRIM(YEAR(@dt)-1)+'12'+RTRIM(24+DAY(@dt))
) + 1
END
IF MONTH(@dt) = 12 AND DAY(@dt)-DATEPART(DW,@dt) >= 28
BEGIN
SET @ISOweek=1
END
RETURN(@ISOweek)
END