sqlserver 多个时间合并成时间段
CREATE TABLE #tmptable(
rq datetime NOT NULL PRIMARY KEY CLUSTERED,
sn int IDENTITY(1,1) NOT NULL,
userId int,
)
GO
INSERT #tmptable VALUES('20170703', 1)
INSERT #tmptable VALUES('20170704', 1)
INSERT #tmptable VALUES('20170705', 1)
INSERT #tmptable VALUES('20170706', 1)
INSERT #tmptable VALUES('20170707', 1)
INSERT #tmptable VALUES('20170708', 1)
INSERT #tmptable VALUES('20170710', 1)
INSERT #tmptable VALUES('20170711', 1)
INSERT #tmptable VALUES('20170712', 1)
INSERT #tmptable VALUES('20170713', 1)
INSERT #tmptable VALUES('20170714', 1)
INSERT #tmptable VALUES('20170715', 1)
INSERT #tmptable VALUES('20170717', 1)
INSERT #tmptable VALUES('20170714', 2)
INSERT #tmptable VALUES('20170715', 2)
INSERT #tmptable VALUES('20170717', 2)
GO
能不能不用循环之类的将它们合并成一条记录:
开始日期 结束日期 USERID
=========== ================= =========
2017-07-03 2017-07-17 1
2017-07-14 2017-07-17 2
要求隔开周六日是可以记为连续日期,但隔开非周六日即为非连续日期不能合并
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
用循环是高级语言的写法,没啥负责的骂我这里提供一种存储用数据库完成的思路
你看看以下语句,我考虑了比你测试数据更多的情况:
同一个userID 不连续
某个用户只有一条
我这里假设 @@DATEFIRST 是默认的7,也就是每周的第一天按周日开始,如果你的设置不同掉过周末的判断要改下