【发布时间】:2012-04-01 10:57:26
【问题描述】:
我正在尝试编写一个将发出的查询:
最多重叠的日期。
格式为d/m/yyyy
所以这里我有日期范围:
dateStart-----dateEnd
1/1---7/1
8/1--15/1
16/1------20/1
8/1--------------21/1
17/1---19/1
18/1--19/1
这是预期的结果分析:
左边的 2 个常见日期是 8/1 和 9/1(出现在 2 个范围内)
右边的 4 个常见日期是 18/1 和 19/1(出现在 4 个范围内......并且 4>2 所以它应该获胜。)
想要的结果:
18/1
19/1
它们看起来重叠最多。
编辑
这是日期时间范围的脚本。
DECLARE @t table( dt1 DATETIME , dt2 DATETIME)
INSERT INTO @t
SELECT '20110101','20110107'
UNION ALL
SELECT '20110108','20110115'
UNION ALL
SELECT '20110116','20110120'
UNION ALL
SELECT '20110108','20110121'
UNION ALL
SELECT '20110117','20110119'
UNION ALL
SELECT '20110118','20110119'
【问题讨论】:
-
如果有一些样本数据就好了。
-
@TimSchmelter 你的意思是插入显示数据的脚本吗?谢谢
-
是的,这样我们讲的一样,可以比较结果。
-
@TimSchmelter 完成。看我的编辑。谢谢
-
日期范围是否包含在内?
标签: sql-server sql-server-2008