zoukankan      html  css  js  c++  java
  • SQL查询日历

     这东西给自己留着用。

    经常会用到一些查询需要做全月统计,但有些时候的统计需要将未发生日期也显示出来,因此会需要一个固定的日期表,(T6的自定义查询估计也是需要的,至少以前是这样)

    下面写两种方法来获取指定月份的日期表,第一种适用SQL 2000及以上版本的数据库,第二种只适用SQL 2005及以上版本数据库

     

    函数一:

    --支持SQL 2000

    CREATE FUNCTION dbo.GetCalendar(@Begin NVARCHAR(30))

    RETURNS @rst TABLE(dDate SMALLDATETIME,iDx int IDENTITY(1,1) NOT NULL)

    AS

    BEGIN

        IF ISNULL(@Begin,'')='' RETURN

        INSERT INTO @rst

        SELECT TOP (DATEDIFF(DAY,@Begin,DATEADD(MONTH,1,@Begin)-1)+1) @Begin

        FROM syscolumns

       

        UPDATE @rst SET dDate=dDate+iDx-1  

        RETURN

    END

    GO

     

    使用方法:

    SELECT * FROM dbo.GetCalendar('2015-6-1') 

     

    函数二:

    --需要ROW_NUMBER函数的支持,支持SQL 2005及以上版本数据库

    CREATE FUNCTION dbo.GetCalendar2005(@Begin NVARCHAR(30))

    RETURNS @rst TABLE(dDate SMALLDATETIME)

    AS

    BEGIN

        INSERT INTO @rst

       SELECT TOP (DATEDIFF(DAY,@Begin,DATEADD(MONTH,1,@Begin)-1)+1) CAST(@Begin AS SMALLDATETIME)-1+ROW_NUMBER() OVER(ORDER BY ID)

        FROM

        syscolumns

        RETURN

    END

    GO

    使用方法:

    SELECT * FROM dbo. GetCalendar2005('2015-6-1') 

  • 相关阅读:
    javaScript函数参数
    python创建pipenv虚拟环境
    信立温度模块解析(模拟量)
    Modbus Poll使用
    云智网关连接
    python中创建virtualenv虚拟环境
    python环境变量配置
    Mysql数据库环境变量配置
    github中创建远程仓库
    python解释器下载
  • 原文地址:https://www.cnblogs.com/pvistely/p/4851838.html
Copyright © 2011-2022 走看看