CREATE FUNCTION fn_getDate
(
@p_Year SMALLINT,
@p_Month TINYINT,
@p_N TINYINT
)
RETURNS SMALLDATETIME
AS
BEGIN
...
END
...全文
3183打赏收藏
SQL日期计算问题
如何取得某一年,第N个月份,第M个星期日的日期,例如 2000年5月的第3个星期日 CREATE FUNCTION fn_getDate ( @p_Year SMALLINT, @p_Month TINYINT, @p_N TINYINT ) RETURNS SMALLDATETIME AS BEGIN ... END
GO
CREATE FUNCTION fn_getDate
(
@p_Year SMALLINT,
@p_Month TINYINT,
@p_N TINYINT
)
RETURNS SMALLDATETIME
AS
BEGIN
declare @i int,@date SMALLDATETIME
select @date=convert(smalldatetime,rtrim(@p_Year)+'-'+rtrim(@p_Month)+'-1')
set @i=(@p_N-1)*7
while @i<@p_N*7
begin
if datepart(weekday,dateadd(day,@i,@date))=1
begin
break
end
else
set @i=@i+1
end
return dateadd(day,@i,@date)
END
GO