【发布时间】:2018-01-25 16:20:24
【问题描述】:
我正在尝试查询使用 id、startDateTime、endDateTime 设置的表。假设第 1 行如下所示:
id startDateTime endDateTime
100 2/9/2012 20:55 3/21/2012 10:43
我需要查询上述内容,以便获得上述范围内所有天数的不同计数。 我的预期结果将在上述 42 天,因为从 2 月 9 日到 3 月 21 日有 42 个独特的日历日。 Datediff 因为它查看时间片给了我 41 天。我尝试了 datediff 和 timediff 的各种迭代,试图让它工作,但找不到在所有情况下都有效的东西。关于如何在 SQL 中完成此操作的任何建议?
我从如下所示的查询开始:
SELECT ConditionStatus.ID,
SUM((DATEDIFF(ConditionStatus.endDate,ConditionStatus.startDate))) AS Duration
WHERE ID = 100
我的查询返回的 Duration 为 41,这在技术上是准确的,但我需要设置条件以使日期范围内的每个日期的计数为 1
我试图模仿我们在数据仓库中使用的一些逻辑,在该逻辑中,对于每个有活动的日期,我们将计数保持为 1。
谢谢, 鲍勃
【问题讨论】:
-
在您的问题中添加更多详细信息