【发布时间】:2012-11-17 01:11:36
【问题描述】:
尝试在 SQL 中为以下内容编写查询:事件具有开始/结束日期/时间。 用户在特定时间可用。如何找到用户可参加特定活动的总时间?
例子:
--Event--
eventID eventStart eventEnd
1 2012-10-10 15:00 2012-10-10 18:00
--Available--
userID availStart availEnd
64 2012-10-10 10:00 2012-10-10 16:00
64 2012-10-10 16:30 2012-10-10 16:40
64 2012-10-10 16:55 2012-10-10 22:00
用户有 135 分钟的空闲时间(15:00-16:00 为 60 分钟,16:30-16:40 为 10 分钟,16:55-18:00 为 65 分钟)。
一些编写 SQL 的帮助会非常有帮助,发现这个很棘手!
【问题讨论】:
-
@Mitch Wheat 我可以得到事件运行的总时间和用户可用的总时间,即
SUM(DATEDIFF(MI,availStart,availEnd)),但是我不能完全弄清楚如何只计算可用条目属于事件时间(包括那些开始较早/结束时间较晚但仅计算事件内部部分的时间)。
标签: sql sql-server sql-server-2008 datetime logic