通过设置间隔时间,获取输入时间范围内,每个时间间隔的开始时间和结束时间(表值函数)

 

 

参数说明:

@spanTime——时间间隔(min)

@beginTime——开始时间(DATETIME)

@endTime——结束时间(DATETIME)

USE [自己的数据库名]
GO
/****** Object:  UserDefinedFunction [dbo].[GetTimeSpanList]    Script Date: 2021/2/5 10:35:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*=========================================================
创建人:LJF
描  述:通过设置间隔时间,获取输入时间范围内,每个时间间隔的开始时间和结束时间。
测  试:SELECT * FROM [dbo].[GetTimeSpanList](30,'2020-06-10 20:00:00','2020-06-12 20:00:00')
=========================================================*/

CREATE FUNCTION [dbo].[GetTimeSpanList](
@spanTime int=30,
@beginTime VARCHAR(20)='2020-06-10 20:00:00',
@endTime VARCHAR(20)='2020-06-12 20:00:00'
)
RETURNS @Array TABLE
(
    BeginTime DATETIME,
    EndTime DATETIME
)
AS
BEGIN
    INSERT INTO @Array (BeginTime,EndTime)
    SELECT DATEADD(n, (number-1)*@spanTime, CONVERT(CHAR(20), @beginTime,120)) AS BeginTime,
                   DATEADD(n, (number)*@spanTime, CONVERT(CHAR(20), @beginTime,120)) AS EndTime
        FROM master..spt_values
        WHERE type = 'p'
        AND number BETWEEN 1 AND DATEDIFF(HOUR,@beginTime,@endTime)*2

    RETURN;
END

 

posted @ 2021-02-05 10:45  佑逆  阅读(239)  评论(0)    收藏  举报