sql - 从一系列日期时间中获取十分钟间隔

标签 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
...                       |

我能做的最远的事情就是把它放入分钟桶槽中。 我通过这样做得到了这个:

SELECT DatetimeSent,
    DATEADD(Minute, DATEDIFF(Minute, 0, DatetimeSent), 0) AS Minute_bucket
FROM allrequests

但我需要十分钟的桶时段。

最佳答案

试试这个:

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

关于sql - 从一系列日期时间中获取十分钟间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193520/

相关文章:

sql-server - SQL Server 上的 Int PK 内部联接与 Guid PK 内部联接。执行计划

c# - Sql 数据库中的字符串是问号 C#

sql - 对可以具有不同属性的实体建模的最佳方法是什么?

sql - 使用SQL获取嵌套json对象中第一个键的值

sql - Concatenate 中的 Select 语句 (Oracle)

sql-server - 如何在 SQL Server 中查找重复值

asp.net - 如何调查 ASP.net 应用程序上的 SQL Server 超时错误?

sql-server - docker容器在bash命令和sql执行后死亡

sql - 从两个连续行中检索组合的查询

mysql - 无法创建链接服务器 - sql server 和 mysql