【发布时间】:2015-06-13 21:55:39
【问题描述】:
我想编写一个查询,仅使用与活动开始和停止时间相对应的时间戳来计算一天中每 15 分钟间隔内发生的活动总量。
这是一个示例数据集:
DATE StartDateTime StopDateTime
2/2/2015 2/2/2015 7:00 2/2/2015 7:25
2/2/2015 2/2/2015 7:20 2/2/2015 7:29
2/2/2015 2/2/2015 7:35 2/2/2015 7:42
2/2/2015 2/2/2015 8:05 2/2/2015 8:14
2/2/2015 2/2/2015 8:16 2/2/2015 8:20
2/2/2015 2/2/2015 8:29 2/2/2015 8:40
2/2/2015 2/2/2015 8:55 2/2/2015 9:25
这就是我想要得到的:
DATE Interval activityTime(min)
2/2/2015 2/2/2015 7:00 15
2/2/2015 2/2/2015 7:15 19
2/2/2015 2/2/2015 7:30 7
2/2/2015 2/2/2015 7:45 0
2/2/2015 2/2/2015 8:00 9
2/2/2015 2/2/2015 8:15 5
2/2/2015 2/2/2015 8:30 10
2/2/2015 2/2/2015 8:45 5
2/2/2015 2/2/2015 9:00 15
2/2/2015 2/2/2015 9:15 10
我一直在寻找一种方法来以我需要的方式组织数据,这是迄今为止我能找到的最接近的方法,尽管我无法让它工作:
Splitting time + duration into intervals in t-sql
我对 SQL 还很陌生,因此对解决方案的任何解释都将不胜感激。这也是我在 stackoverflow 上的第一篇文章,所以如果数据不是首选格式或有任何其他问题,请告诉我。谢谢!
【问题讨论】:
-
使用适当的软件(MySQL、Oracle、DB2...)和版本标记数据库问题很有帮助,例如
sql-server-2014。语法和功能的差异通常会影响答案。 -
谢谢。我已对其进行了更新,以包括 teradata sql 助手和 sql 版本。
-
Teradata 和 SQL Server 都需要这个吗?您的 Teradata 版本是什么?
-
我的意思是放第 14 版 teradata,而不是 sql server。我们可能很快就会过渡到 SQL Server,但现在,我正在使用 teradata
标签: tsql datetime teradata timetable