zoukankan      html  css  js  c++  java
  • 关于日期的一些有意思的脚本

    --需求:关于日期的一些有意思的脚本
    --脚本:t-sql for sql server 2012
    --日期:20181101 9:52
    --作者:leegq
    SELECT  DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0) AS 本年第一天 ,
            DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0)) AS 本年最后一天 ,
            DATEDIFF(DAY, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0),
                     DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0)) AS 本年有多少天 ,
            DATEADD(QUARTER, DATEDIFF(QUARTER, 0, GETDATE()), 0) AS 本季度第一天 ,
            DATEADD(DAY, -1,
                    DATEADD(QUARTER, DATEDIFF(QUARTER, 0, GETDATE()) + 1, 0)) AS 本季度最后一天 ,
            DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) AS 本月第一天 ,
            DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)) AS 本月最后一天 ,
            DATEADD(DAY, -1, DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()) + 1, 0)) AS 本季度最后一天 ,
            DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0) AS 本周第一天 ,
            DATEADD(DAY, -1, DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()) + 1, 0)) AS 本周最后一天;   
    --需求:计算某一年度的日历
    DECLARE @s_day AS NVARCHAR(4);
    SET @s_day = '2019'--输入年度
    SET @s_day=@s_day+'-1-1';
    WITH    x1 ( number )
              AS ( SELECT   number
                   FROM     master..spt_values
                   WHERE    type = 'P'
                            AND number BETWEEN 1
                                       AND     DATEDIFF(DAY,
                                                        DATEADD(YEAR,
                                                                DATEDIFF(YEAR, 0,
                                                                  @s_day), 0),
                                                        DATEADD(YEAR,
                                                                DATEDIFF(YEAR, 0,
                                                                  @s_day) + 1, 0))
                 )
        SELECT  month_name AS 月份 ,
                ISNULL(星期日, '') AS 星期日 ,
                ISNULL(星期一, '') AS 星期一 ,
                ISNULL(星期二, '') AS 星期二 ,
                ISNULL(星期三, '') AS 星期三 ,
                ISNULL(星期四, '') AS 星期四 ,
                ISNULL(星期五, '') AS 星期五 ,
                ISNULL(星期六, '') AS 星期六
        FROM    ( SELECT    month_name ,
                            week ,
                            week_name ,
                            date_name
                  FROM      ( SELECT    MONTH(DATEADD(DAY, number - 1, @s_day)) AS month_name ,
                                        DATENAME(DAY,
                                                 DATEADD(DAY, number - 1, @s_day)) AS date_name ,
                                        DATENAME(WEEKDAY,
                                                 DATEADD(DAY, number - 1, @s_day)) AS week_name ,
                                        DATEPART(WEEK,
                                                 DATEADD(DAY, number - 1, @s_day)) AS week
                              FROM      x1
                            ) AS ad
                ) AS a PIVOT ( MAX(date_name) FOR week_name IN ( [星期日], [星期一],
                                                                 [星期二], [星期三],
                                                                 [星期四], [星期五],
                                                                 [星期六] ) ) AS pt
        ORDER BY week;
    

      

  • 相关阅读:
    Shiro入门
    Springmvc 文件上传和json处理
    SpringMVC入门
    Mybatis关联关系
    Mybatis整合Ehcache或Redis实现二级缓存
    mybatis与spring集成
    mybatis动态sql以及分页
    MyBatis入门
    使用java代码操作Redis
    【转】 制作Android Demo GIF:程序演示效果GIF图录制
  • 原文地址:https://www.cnblogs.com/bgbird/p/9887632.html
Copyright © 2011-2022 走看看