从一系列日期时间获取十分钟的间隔

dub*_*ech 6 sql sql-server sql-server-2008

我有一个日期时间列,其日期时间值范围.我想创建另一个包含所有这些日期时间值的列,但要舍入到十分钟的时间段.

所以,像这样:

datetimesent              |     ten_minute_column

2012-06-11 18:27:58.000   |     2012-06-11 18:20:00.000
2012-06-15 15:19:08.000   |     2012-06-15 15:10:00.000
...                       |
Run Code Online (Sandbox Code Playgroud)

我所拥有的最远的就是将它放入分钟插槽中.我这样做:

SELECT DatetimeSent,
    DATEADD(Minute, DATEDIFF(Minute, 0, DatetimeSent), 0) AS Minute_bucket
FROM allrequests
Run Code Online (Sandbox Code Playgroud)

但我需要十分钟的水槽.

t-c*_*.dk 8

试试这个:

select dateadd(minute, datepart(minute, datetimesent) / 10 * 10, 
dateadd(hour, datediff(hour, 0,datetimesent), 0)) ten_minute_column
from 
(select cast('2012-06-11 18:27:58.000' as datetime) datetimesent
union all
 select cast('2012-06-15 15:19:08.000' as datetime)) a
Run Code Online (Sandbox Code Playgroud)