如何编写t-sql查询以显示当前月份日历?请帮忙

如何编写t-sql查询以显示当前月份日历?请帮忙,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何编写t-sql查询以显示当前月份日历?请帮忙。。 这是我的问题 declare @start int declare @day int declare @space varchar(100) declare @nodays int select @start=1 select @space='' select @nodays=datediff(dd,getdate(),dateadd(mm,1,getdate())) select @day=case datename(dw,cast(yea

如何编写t-sql查询以显示当前月份日历?请帮忙。。 这是我的问题

declare @start int
declare @day int
declare @space varchar(100)
declare @nodays int
select @start=1
select @space=''
select @nodays=datediff(dd,getdate(),dateadd(mm,1,getdate()))
select @day=case datename(dw,cast(year(getdate()) as varchar(10)) + '-' +cast(month(getdate()) as varchar(10)) + '-' +cast(day(getdate()) as varchar(10))) when 'Sunday' then 1 when 'Monday' then 2 when 'tuesday' then 3 when 'wednesday' then 4 when 'thursday' then 5 when 'friday' then 6 when 'saturday' then 7 end
while(@start<=@nodays)
    if(@day=1)
        if(len(@space)=0)
            select @space=cast(@start as varchar(10))
        else
            select @space=@space+' '+
            case when len(cast(@start as varchar(10)))=1 
            then ' ' 
            else '' 
            end +
            cast(@start as varchar(10))
    else
        if(len(@space)=0)
            select @space=@space+ 
            replicate(char(10),@start) +
            case when len(cast(@start as varchar(10)))=1 
            then ' ' 
            else '' 
            end +
            cast(@start as varchar(10))
        else
            select @space=@space+char(10) + case when len(cast(@start as varchar(10)))=1 then ' ' else '' end +cast(@start as varchar(10))
    select @start=@start+1
print @space+char(10)
declare@start int
声明@day int
声明@space varchar(100)
声明@nodays int
选择@start=1
选择@space=''
选择@nodays=datediff(dd,getdate(),dateadd(mm,1,getdate())
选择@day=case-datename(dw,cast(year(getdate())作为varchar(10))+“-”+cast(month(getdate())作为varchar(10))+“-”+cast(day(getdate())作为varchar(10)))当“星期天”时,然后选择1当“星期一”,然后选择2当“星期二”,然后选择3当“星期三”,然后选择4当“星期四”,然后选择5当“星期五”,然后选择6当“星期六”,最后选择7结束
而(@start