|
|
1
7
这里有一个只支持SQL的解决方案。我在列中使用了日期时间。在我看来,把时间分开储存是一个错误,因为当时间过了午夜,你就会遇到问题。不过,如果需要的话,你可以调整它来处理这种情况。解决方案还假定开始和结束时间不为空。同样,如果情况并非如此,您可以根据需要进行调整。 解决方案的一般要点是获取所有不与任何其他跨度重叠的开始时间,获取所有不与任何跨度重叠的结束时间,然后将两者匹配在一起。 结果与您期望的结果相匹配,但有一种情况除外,这种情况下,手工检查似乎在您的预期输出中有错误。在第6天应该有一个跨度在2009-06-06 10:18:45.000结束。
|
|
|
2
4
在
同样的决定
执行此操作的功能如下:
自从
在测试
注意中的附加条件
这似乎是多余的,但它实际上是一个粗糙的过滤器,用于创建索引
|
|
|
3
3
类似问题如下: Min effective and termdate for contiguous dates fwiw i up投票推荐了Joe Celko的SQL for Smarties,第三版——重复:第三版(2005)——讨论了各种方法、设置基础和过程。 |
|
|
4
2
假设你:
执行以下操作:
|
|
|
5
1
这里有一个递归的CTE解决方案,但是我可以自由地为每一列指定日期和时间,而不是单独提取日期。有助于避免一些混乱的特殊情况代码。如果必须单独存储日期,我将使用CTE视图使其看起来像两个日期时间列,并使用此方法。 创建测试数据:
递归CTE:
给出输出:
|
|
|
6
0
为了帮助回答问题,以下是问题中给定的示例数据,这些示例数据位于类似hainstech的表变量中:
|
|
|
7
0
在Mahler5的回答上,我写了一个对DateTools的快速扩展。到目前为止,它已经通过了我所有的测试。
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |