【发布时间】:2016-05-07 10:58:56
【问题描述】:
使用 SQL Server 2005 我使用 UNION 从一组两个表中选择 DATETIME。其中许多非常接近:例如:
2016-01-29 10:28:57.540
2016-01-29 10:28:57.647
2016-01-29 11:23:18.193
2016-01-29 11:23:18.240
在这个例子中,我只想返回
2016-01-29 10:28:57.000
2016-01-29 11:23:18.000
这很容易使用一些日期/转换函数来删除 ms 部分。但是,如果我们得到以下信息:
2016-01-29 10:18:58.105
2016-01-29 10:18:57.952
2016-01-29 11:13:18.193
2016-01-29 11:13:18.240
当我只想要 2 个时,我会得到 3 个日期时间:
2016-01-29 10:18:58.000
2016-01-29 10:18:57.000
2016-01-29 11:13:18.000
代替:
2016-01-29 10:18:58.000
2016-01-29 11:13:18.000
因为 2016-01-29 10:18:58.105 和 2016-01-29 10:18:57.952 相差不到一秒。
所以问题是如何将彼此相隔一秒的 DATETIME 值组合在一起?
【问题讨论】:
-
所以你可以分成两个以上的块,对吧?
-
正确。 1000ms 内的任意时间(即使它们有不同的第二分量也应该分组)
-
还有什么,比如说,三个连续的日期,间隔为 999 毫秒。中间的应该属于哪一组?
标签: sql-server tsql sql-server-2005