栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在SQL Server中合并时间间隔

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在SQL Server中合并时间间隔

您可以使用递归CTE构建日期列表,然后计算不同的日期。

declare @T table(  startDate date,  endDate date);insert into @T values('2011-01-01', '2011-01-05'),('2011-01-04', '2011-01-08'),('2011-01-11', '2011-01-15');with C as(  select startDate,         endDate  from @T  union all  select dateadd(day, 1, startDate),         endDate  from C  where dateadd(day, 1, startDate) < endDate       )select count(distinct startDate) as DayCountfrom Coption (MAXRECURSION 0)

结果:

DayCount-----------11

或者,您可以使用数字表。在这里我使用master..spt_values:

declare @MinStartDate dateselect @MinStartDate = min(startDate)from @Tselect count(distinct N.number)from @T as T  inner join master..spt_values as N    on dateadd(day, N.Number, @MinStartDate) between T.startDate and dateadd(day, -1, T.endDate)where N.type = 'P'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号