SQL Server 2000 日历
/*-----------------------------------------------*//*输入年份即可求日历 *//*-----------------------------------------------*/declare @year as varchar(10) set @year='2009'/*-----------------------------------------------*//* 基本参数 *//*-----------------------------------------------*/declare @date as smalldatetime--该年的开始日期declare @enter as varchar(20)--换行declare @tab as varchar(20)--退格declare @weekDayStr as varchar(3000)--星期几declare @outPrint as varchar(5000)--所有字符串的集合set @date=cast(@year+'-1-1' as smalldatetime)set @enter=char(13)set @tab=char(9)set @weekDayStr='星期日'+@tab+'星期一'+@tab+'星期二'+@tab+'星期三'+@tab+'星期四'+@tab+'星期五'+@tab+'星期六'set @outPrint=''--null/*-----------------------------------------------*//* 形成每月的日历 *//*-----------------------------------------------*/while(datename(mm,@date)<=12 and datename(mm,@date)>=1 and datename(yy,@date)=@year)begin--显示标题set @outPrint=@outPrint+@enter+'======================================================='+@enter+' '+datename(yy,@date)+'年'+datename(mm,@date)+'月'+@enter+'======================================================='+@enterset @outPrint=@outPrint+@weekDayStr+@enter--显示每月前的空格set @outPrint=@outPrint+(case datename(dw,@date)when '星期一' then @tabwhen '星期二' then @tab+@tabwhen '星期三' then @tab+@tab+@tabwhen '星期四' then @tab+@tab+@tab+@tabwhen '星期五' then @tab+@tab+@tab+@tab+@tabwhen '星期六' then @tab+@tab+@tab+@tab+@tab+@tabelse ''end)--上个月的月份declare @tempMonth as intset @tempMonth=datename(mm,@date)--显示该月日历while(datename(mm,@date)=@tempMonth)beginif datename(dw,@date)='星期六'set @outPrint=@outPrint+datename(dd,@date)+@enterelseset @outPrint=@outPrint+datename(dd,@date)+@tab--日期加1set @date=dateAdd(dd,1,@date)endset @outPrint=@outPrint+@enterend/*-----------------------------------------------*//* 显示结果 *//*-----------------------------------------------*/print @outPrint
?闲来无事,找到以前做过的一个日历,放到上面,希望对大家有所帮助,同时也加深自己的记忆。
?