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季度

    下面是查出来的数据

    天数:

    月份:

    季度:

  • 相关阅读:
    Java8 Stream
    一个轻量级的基于RateLimiter的分布式限流实现
    常用限流算法与Guava RateLimiter源码解析
    Java学习之socket网络编程篇
    Java学习之文件io流篇
    Java学习之异常篇
    Java学习之多线程篇
    Java学习之集合篇
    Java学习之常用类篇
    Java学习之final与匿名内部类篇
  • 原文地址:https://www.cnblogs.com/wangxlei/p/11777863.html
Copyright © 2011-2022 走看看