2025年3月18日 星期二 甲辰(龙)年 月十七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > 其它数据库

sql 根据开始 结束时间 获取年月日季度

时间:11-12来源:作者:点击数:29

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

下面是查出来的数据

天数:

月份:

季度:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门