zoukankan      html  css  js  c++  java
  • SQL server做日历,sql凭空生成日期数据,空表

    DECLARE @date CHAR(10)
    SET @date = '2010-12-16'
    SET @date = convert(varchar(10),getdate(),120)

    SELECT SUN = MAX(CASE WHEN a.xq = 1 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           MON = MAX(CASE WHEN a.xq = 2 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           TUE = MAX(CASE WHEN a.xq = 3 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           WED = MAX(CASE WHEN a.xq = 4 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           THU = MAX(CASE WHEN a.xq = 5 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           FRI = MAX(CASE WHEN a.xq = 6 THEN CONVERT(CHAR(2),a.number) ELSE '' END),
           SAT = MAX(CASE WHEN a.xq = 7 THEN CONVERT(CHAR(2),a.number) ELSE '' END) 
    FROM (
          SELECT a.number  --本月号数
                 ,xq = DATEPART(weekday,LEFT(@date,8)+ CONVERT(CHAR(2),a.number)) --星期几
                 ,zs = DATEDIFF(week,CONVERT(char(7),LEFT(@date,8)+ CONVERT(CHAR(2),a.number),121)+ '-01 ',LEFT(@date,8)+ CONVERT(CHAR(2),a.number))+1 --本月周数
          FROM master..spt_values a
          WHERE a.type = 'P'
                AND number BETWEEN 1 AND (select DAY(DATEADD(dd,-DATEPART(dd,@date) ,DATEADD(mm,1,@date))))  --本月号数范围
          ) a
    GROUP BY a.zs

    SUN  MON  TUE  WED  THU  FRI  SAT
    ---- ---- ---- ---- ---- ---- ----
                             1    2
    3    4    5    6    7    8    9
    10   11   12   13   14   15   16
    17   18   19   20   21   22   23
    24   25   26   27   28   29   30
    31                             

    (6 行受影响)

    凭空生成日期数据

    DECLARE @sdate CHAR(10)
    DECLARE @edate CHAR(10)
    SET @sdate = '2010-12-16'--开始日期
    SET @edate = '2011-2-16' --结束日期

    SELECT CONVERT(varchar(10),DATEADD(dd,a.number,@sdate),120) as 日期
      FROM master..spt_values a --系统表
      WHERE a.type = 'P' 
      AND number BETWEEN 0 AND (select DATEDIFF(dd,@sdate,@edate))

    结果如下:

    日期
    ----------
    2010-12-16
    2010-12-17
    2010-12-18
    2010-12-19
    2010-12-20
    2010-12-21
    2010-12-22
    2010-12-23
    2010-12-24
    2010-12-25
    2010-12-26
    2010-12-27
    2010-12-28
    2010-12-29
    2010-12-30
    2010-12-31
    2011-01-01
    2011-01-02
    2011-01-03
    2011-01-04
    2011-01-05
    2011-01-06
    2011-01-07
    2011-01-08
    2011-01-09
    2011-01-10
    2011-01-11
    2011-01-12
    2011-01-13
    2011-01-14
    2011-01-15
    2011-01-16
    2011-01-17
    2011-01-18
    2011-01-19
    2011-01-20
    2011-01-21
    2011-01-22
    2011-01-23
    2011-01-24
    2011-01-25
    2011-01-26
    2011-01-27
    2011-01-28
    2011-01-29
    2011-01-30
    2011-01-31
    2011-02-01
    2011-02-02
    2011-02-03
    2011-02-04
    2011-02-05
    2011-02-06
    2011-02-07
    2011-02-08
    2011-02-09
    2011-02-10
    2011-02-11
    2011-02-12
    2011-02-13
    2011-02-14
    2011-02-15
    2011-02-16

    (63 行受影响)



    欢迎加入JAVA技术交流QQ群:179945282

    欢迎加入ASP.NET(C#)交流QQ群:17534377


  • 相关阅读:
    react给input元素中文输入的时候自动转成字符串bug
    charles代理
    es6和es5函数参数和arguments的差别
    Uncaught InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.
    Node 开发概述
    对Flutter路由管理库Fluro的封装
    Flutter 切换标签显示对应的列表+Provide状态管理实例
    Flutter 商城实例 分类列表
    Flutter 入口页面及底部导航栏实例制作
    Flutter 建立项目和编写入口文件
  • 原文地址:https://www.cnblogs.com/q149072205/p/2104627.html
Copyright © 2011-2022 走看看