zoukankan      html  css  js  c++  java
  • sql 根据开始 结束时间 获取年月日季度

    CREATE FUNCTION [dbo].[GetDateList]
    (    
     @StartTime DATE,
     @EndTime DATE,
     @DateType TINYINT
    )
    RETURNS @DataTab TABLE (
        id INT  IDENTITY(1,1),
        FormatDate NVARCHAR(20),
        DateFullInt Int,
        DateVal_Y INT,
        DateVal_M INT,
        DateVal_D INT,
        DateVal_Q INT
    )
    AS
    BEGIN
        DECLARE @DateVal DATE;
        DECLARE @FormatDate NVARCHAR(20);
        DECLARE @DateFullInt INT  ;
        SET @DateVal=@StartTime
        WHILE @DateVal <=@EndTime 
        BEGIN 
            IF (@DateType=1) 
            BEGIN 
               SET @FormatDate=CONVERT(NVARCHAR(10),@DateVal,120)
               SET @DateFullInt =CONVERT(INT,REPLACE(@FormatDate,'-',''))
            END
            IF (@DateType=2) 
            BEGIN 
               SET @FormatDate=CONVERT(NVARCHAR(7),@DateVal,120)
               SET @DateFullInt =CONVERT(INT,REPLACE(@FormatDate,'-',''))
            END
            IF (@DateType=3) 
            BEGIN 
               SET @FormatDate=CONVERT(NVARCHAR(4),DATEPART(YEAR,@DateVal)) +'-Q'+CONVERT(NVARCHAR(1),DATEPART(QUARTER,@DateVal))
               SET @DateFullInt =CONVERT(INT,CONVERT(NVARCHAR(4),DATEPART(YEAR,@DateVal))+'0'+DATEPART(QUARTER,@DateVal))
            END
    
            INSERT INTO @DataTab (DateVal_Y,DateVal_M,DateVal_D,DateVal_Q,FormatDate,DateFullInt) 
            VALUES 
            (DATEPART(YEAR,@DateVal),
             DATEPART(MONTH,@DateVal),
             DATEPART(DAY,@DateVal),
             DATEPART(QUARTER,@DateVal),
             @FormatDate,
             @DateFullInt
             )
            IF (@DateType=1) BEGIN SET @DateVal=DATEADD(DAY,1,@DateVal) END
            IF (@DateType=2) BEGIN SET @DateVal=DATEADD(MONTH,1,@DateVal) END
            IF (@DateType=3) BEGIN SET @DateVal=DATEADD(QUARTER,1,@DateVal) END
        END 
        RETURN 
    END
    GO

    这是一个sql 函数

    调用方式

     SELECT * FROM GetDateList('2019-01-01','2012-01-10',1)

    参数是,(开始时间,结束时间,类型)  类型:1天数,2月份,3季度

    下面是查出来的数据

    天数:

    月份:

    季度:

  • 相关阅读:
    Python之转换py文件为无需依赖python环境的exe文件的方法
    Python之回调函数
    Python之静态语法检查
    Ubuntu中一次更改用户名带来的连锁反应
    Python之FTP传输
    qemu 源码调试
    Lattice Reduction (LLL) 算法C代码实现
    一道Apple公司(中国)的面试题目
    github免密码设置
    HiHo Coder字典树 TrieTree
  • 原文地址:https://www.cnblogs.com/wangxlei/p/11777863.html
Copyright © 2011-2022 走看看