yuanweisen

 

一个SQL函数,关于日期转换成星期的功能

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
/*
该函数返回当前日期的前一星期的周一,周五,周日以及13周以前的周一日期
*/
ALTER    FUNCTION dbo.PreviousWeek
(@Day as varchar(50))
Returns @table  table(PreviousMonday varchar(20),PreviousFriday varchar(20),PreviousSunday varchar(20),Previous13WeekMonday varchar(20))
as
begin
--定义日期变量
declare @PreviousDay varchar(20),@PreviousMonday varchar(20),@PreviousSunday varchar(20),@PreviousFriday varchar(20),
@Previous13WeekMonday varchar(20)
--得到当前日期上一周的日期
set @PreviousDay=convert(varchar(10),dateadd(day,-7,@Day),120)
--得到该时间所在周的周一日期
set @PreviousMonday=convert(varchar(10),dateadd(wk,datediff(wk,0,@Previousday),0),120)
--得到周日和周五
set @PreviousSunday=convert(varchar(10),dateadd(day,6,@PreviousMonday),120)
set @PreviousFriday=convert(varchar(10),dateadd(day,4,@PreviousMonday),120)
--得到13周前的周一
set @Previous13WeekMonday=convert(varchar(10),dateadd(wk,-13,@PreviousMonday),120)
--付给临时表并返回
insert into @table
values(@PreviousMonday,@PreviousFriday,@PreviousSunday,@Previous13WeekMonday)
return
end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

 

posted on 2008-12-31 13:56    阅读(1364)  评论(0编辑  收藏  举报

导航