我有一个简单的 sql 查询,如下所示:
SELECT dt AS 'startDate'
, dt AS 'endDate'
FROM
WorkCalendar
WHERE
dt BETWEEN dateadd(yy, datediff(yy, 0, getdate()), 0) AND dateadd(MILLISECOND, -3, dateadd(YEAR, datediff(YEAR, 0, getdate()) + 1, 0))
AND isWorkDay = 0
这将返回我的表中的所有日期,其中包含当年的无工作天数。
这是示例输出:
startDate endDate
2012-01-01 00:00:00 2012-01-01 00:00:00
2012-01-06 00:00:00 2012-01-06 00:00:00
2012-01-07 00:00:00 2012-01-07 00:00:00
2012-01-08 00:00:00 2012-01-08 00:00:00
2012-01-14 00:00:00 2012-01-14 00:00:00
2012-01-15 00:00:00 2012-01-15 00:00:00
2012-01-21 00:00:00 2012-01-21 00:00:00
2012-01-22 00:00:00 2012-01-22 00:00:00
我想做的是像这样对近日期进行分组:
startDate endDate
2012-01-01 00:00:00 2012-01-01 00:00:00
2012-01-06 00:00:00 2012-01-08 00:00:00
2012-01-14 00:00:00 2012-01-15 00:00:00
2012-01-21 00:00:00 2012-01-22 00:00:00
如果我有 2 天或更多天是一个接一个的,我想把他们加入小组。
我希望使用 linq to sql 来完成这项工作,因为我在 web 服务中使用它会更简单,但简单的 sql 就可以了:)