搜课云网 > 上海内威培训 > 资讯总汇 > 根据年月生成日历

根据年月生成日历

机构:上海内威培训 时间:2016-01-23 09:18:54 点击:609

  go

  --创建函数(第一版)(作者:dobear_0922)

  create function fn_Calendar(@year int, @month int)

  returns nvarchar(max)

  as

  begin

  declare @result nvarchar(max), @Enter nvarchar(8)

  select @Enter = char(13)+char(10), @result = ' Sun Mon Tue Wed Thu Fri Sat' + @Enter --表头

  declare @start datetime, @end datetime

  select @start = rtrim(@year)+'-'+rtrim(@month)+'-1', @end = dateadd(mm, 1, @start)

  set @result = @result+replicate(' ', (datepart(dw, @start)+@@datefirst+6)%7) --第一行前面的空格

  while datediff(d, @start, @end)>0

  begin

  if (datepart(dw, @start)+@@datefirst)%7 = 1

  select @result = @result+@Enter --是否换行

  select @result = @result+right(' '+rtrim(day(@start)), 4), @start = dateadd(d, 1, @start)

  end

  return @result

  end

  go

  --测试示例

  set datefirst 3

  print dbo.fn_Calendar(2007, 12)

  select dbo.fn_Calendar(2007, 12)

  set datefirst 7

  了解更多关于软件方面的知识,请访问上海软件培训学校

下一篇:存储过程总结
师资介绍