線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1595
推到 Plurk!
推到 Facebook!

用Sql程式產生月曆資料表(ms-sql)

 
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-11 12:32:41 IP:210.61.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-13 07:56:02 IP:218.160.xxx.xxx 未訂閱
嗯~暫存Table原來可以這樣用~ 以前都是用Create Table #XXX,Drop Table #XXX 又學到一招,謝謝pedro的教學~ 
系統時間:2024-05-12 0:57:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!