用Sql程式產生月曆資料表(ms-sql) |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
declare @BegYymm char(6) declare @EndYymm char(6) declare @calendar table(週次 int,星期日 char(2),星期一 Char(2),星期二 Char(2),星期三 char(2),星期四 char(2),星期五 char(2),星期六 char(2),月份 char(10)) set @BegYymm='200401' set @EndYymm='200412' begin declare @BegDate datetime declare @EndDate datetime declare @iWeek int declare @DayOfWeek int declare @NewRow bit declare @NewMon bit set @BegDate=Cast(@BegYymm '01' as datetime) set @EndDate=DateAdd(day,-1,DATEADD(month, 1, @Endyymm '01')) set @NewRow=0 set @NewMon=0 while @BegDate<@EndDate begin set @DayOfWeek=DATEPART(dw,@BegDate ) if day(@BegDate)=1 Set @NewMon=1 if @NewRow=0 begin set @iWeek=(select DateName(Week,@BegDate)) if @NewMon=1 insert @Calendar (週次,星期日,星期一,星期二,星期三,星期四,星期五,星期六,月份) Values(@iWeek,'','','','','','','',DatePart(mm,@BegDate)) else insert @Calendar (週次,星期日,星期一,星期二,星期三,星期四,星期五,星期六,月份) Values(@iWeek,'','','','','','','','') set @NewRow=1 set @NewMon=0 end if @DayOfWeek = 1 update @calendar set 星期日=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 2 update @calendar set 星期一=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 3 update @calendar set 星期二=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 4 update @calendar set 星期三=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 5 update @calendar set 星期四=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 6 update @calendar set 星期五=DATEPART ( dd , @BegDate ) where 週次=@iWeek if @DayOfWeek = 7 begin update @calendar set 星期六=DATEPART ( dd , @BegDate ) where 週次=@iWeek set @NewRow=0 end set @BegDate=DATEADD(day, 1, @Begdate) end end select * from @calendar |
yohko
一般會員 發表:0 回覆:1 積分:0 註冊:2002-10-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |