【发布时间】:2019-01-29 13:06:34
【问题描述】:
我有 3 条记录结构的请求表:Id、DateFrom、DateTo
Id DateFrom DateTo
1 15/01/2019 15/01/2019
2 21/01/2019 28/01/2019
3 04/02/2019 09/02/2019
And I want an output like this:
Id Date
1 15/01/2019
2 21/01/2019
2 22/01/2019
2 23/01/2019
2 24/01/2019
2 25/01/2019
2 26/01/2019
2 27/01/2019
2 28/01/2019
3 04/02/2019
3 05/02/2019
3 06/02/2019
3 07/02/2019
3 08/02/2019
3 09/02/2019
我创建了一个表值函数来显示一系列基于日期的 DateFrom 和 DateTo。
CREATE FUNCTION [dbo].[tvfhrms_Calendar_DateRange](@DateFrom date, @DateTo date)
RETURNS @DateOfTheYear Table(Level int,SysDate date)
AS
BEGIN
WITH AllDays
AS (
SELECT [Level] = 1
,[Date] = @DateFrom
UNION ALL
SELECT [Level] = [Level] + 1
,[Date] = DATEADD(DAY, 1, [Date])
FROM AllDays
WHERE [Date] < @DateTo
)
INSERT @DateOfTheYear
SELECT [Level]
,[SysDate]=[Date]
FROM AllDays OPTION (MAXRECURSION 0)
RETURN
END
那么在select查询中使用时,
SELECT sysdate from [dbo].[tvfhrms_Calendar_DateRange]('2019-01-10', '2019-02-09')
这将给出 Datefrom 到 DateTo 序列的结果。 如何将其集成到我的表中,以便我可以得到符合我期望的输出?
【问题讨论】:
标签: sql-server