zoukankan      html  css  js  c++  java
  • SQL 生成日历


    ALTER PROCEDURE [dbo].[ST_GetCalendar_S]
        @Year INT,
        @Month INT
    AS
    BEGIN
     DECLARE @Inmonth as varchar(7)
     SET @Inmonth =  CONVERT(VARCHAR,@Year)+'-'+ CONVERT(VARCHAR,@Month)
     
     DECLARE @a table(id int identity(0,1),date datetime)

     INSERT INTO @a(date)
     SELECT TOP 31 @Inmonth + '-01' FROM sysobjects
     UPDATE @a set date=dateadd(dd,id,date)
     
     select 日,一,二,三,四,五,六
     from
     (
      select week ,
       max(case weekday when 1 then datename(day,dt) else '' end ) '日',
       max(case weekday when 2 then datename(day,dt) else '' end ) '一',
       max(case weekday when 3 then datename(day,dt) else '' end ) '二',
       max(case weekday when 4 then datename(day,dt) else '' end ) '三',
       max(case weekday when 5 then datename(day,dt) else '' end ) '四',
       max(case weekday when 6 then datename(day,dt) else '' end ) '五',
       max(case weekday when 7 then datename(day,dt) else '' end ) '六'
      from
      (
       select week = datepart(week , m.dt) , weekday = datepart(weekday , m.dt) , dt from
       (
        select dt = date
        FROM @a
        where date < dateadd(month , 1 , @Inmonth + '-01')
       ) m
      ) n
      group by week
     ) o    
     
    END

  • 相关阅读:
    ubuntu开启SSH服务
    [FreeModbus源码分析] 1.协议简介
    minicom无法输入问题
    Redis学习sorted set数据类型
    Redis学习string数据类型
    Redis学习list数据类型
    Redis学习常用命令
    Redis学习hash数据类型
    Redis学习set数据结构
    Redis初探Redis安装
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/2125666.html
Copyright © 2011-2022 走看看