【发布时间】:2008-10-13 00:42:18
【问题描述】:
对于我正在工作的当前项目,我需要返回基于日期范围的汇总报告。
我有 3 种类型的报告,每年、每月和每天。
为了帮助返回此报告,我需要一个函数,该函数将返回较大范围内的所有日期时间子范围。
因此,例如,如果我对于 '2006-01-01 11:10:00' 和 '2006-01-05 08:00:00' 之间的所有每日范围,我希望得到以下结果。
select *
from dbo.fnGetDateRanges('d', '2006-01-01 11:10:00', '2006-01-05 08:00:00')
2006-01-01 11:10:00.000, 2006-01-02 00:00:00.000
2006-01-02 00:00:00.000, 2006-01-03 00:00:00.000
2006-01-03 00:00:00.000, 2006-01-04 00:00:00.000
2006-01-04 00:00:00.000, 2006-01-05 00:00:00.000
2006-01-05 00:00:00.000, 2006-01-05 08:00:00.000
对于 '2006-01-01 11:10:00' 到 '2009-05-05 08:00:00' 的年度范围,我预计。
select *
from dbo.fnGetDateRanges('y', '2006-01-01 11:10:00', '2009-05-05 08:00:00')
2006-01-01 11:10:00.000, 2007-01-01 00:00:00.000
2007-01-01 00:00:00.000, 2008-01-01 00:00:00.000
2008-01-01 00:00:00.000, 2009-01-01 00:00:00.000
2009-01-01 00:00:00.000, 2009-05-05 08:00:00.000
我将如何实现这个功能?
【问题讨论】:
标签: sql-server