直接看效果吧 然后用什么方式显示,就看大家发挥咯。 SQL代码: /****** 对象: UserDefinedFunction [dbo].[f_Calendar_Refresh] 脚本日期: 02/24/2010 10:09:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[f_Calendar_Refresh](@year int,@month int) returns @t table(SUN varchar(4),MON varchar(4),TUE varchar(4),WED varchar(4),THU varchar(4),FRI varchar(4),SAT varchar(4)) as begin declare @a table(id int identity(0,1),date datetime) insert into @a(date) select top 31 rtrim(@year)+'-'+rtrim(@month)+'-1' from sysobjects update @a set date=dateadd(dd,id,date) -- insert @t select '日','一' ,'二', '三','四', '五','六' insert into @t select max(case datepart(dw,date) when 7 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 1 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 2 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 3 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 4 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 5 then rtrim(day(date)) else '' end), max(case datepart(dw,date) when 6 then rtrim(day(date)) else '' end) from @a where month(date)=@month group by (case datepart(dw,date) when 7 then datepart(week,date)+1 else datepart(week,date) end) return end