sql - T-SQL 每小时获取行数,无论日期如何

标签 sql sql-server tsql

使用这篇文章中已接受的答案Count rows per hour in SQL Server with full date-time value as result我能够按小时获取记录计数,但是,我想这样做,以便日期并不重要。

如何获取一天中每小时的记录计数,无论记录来自哪一天?

例如下表:

+----------+-------------------------+
| instance |        datetime         |
+----------+-------------------------+
| A        | 2017-01-10 11:01:05.267 |
| B        | 2017-01-13 11:07:05.783 |
| C        | 2017-01-14 11:37:05.593 |
| D        | 2017-01-17 11:37:38.610 |
| E        | 2017-01-17 11:47:04.877 |
| F        | 2017-01-15 12:14:34.127 |
| G        | 2017-01-17 12:15:09.373 |
| H        | 2017-01-09 13:58:06.013 |
+----------+-------------------------+

将产生以下数据集:

+-------------+-------------+
| recordCount |  timeStamp  |
+-------------+-------------+
|           5 | 11:00:00.00 |
|           2 | 12:00:00.00 |
|           1 | 13:00:00.00 |
+-------------+-------------+

最佳答案

您可以使用DATEPART :

SELECT DATEPART(HOUR, [datetime]), COUNT(*)
FROM mytable
GROUP BY DATEPART(HOUR, [datetime])

该函数返回一个整数,本质上是从 DATETIME 字段中提取小时值。

关于sql - T-SQL 每小时获取行数,无论日期如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831722/

相关文章:

sql - Qt QSql类错误

sql - 获取分页 SQL 搜索存储过程的计数

sql-server - 为没有实例名称的连接设置 SQL 服务器

sql-server - 从 MSSQL 中的表中获取数字范围

sql - 如何在 SQL Server 中按周(7 天)分组

mysql - 如何在一个 mysql 查询中获得所有这些结果?

sql-server - MS SQL Server 2008 更改触发器中插入的行值

sql-server - SQL Server 不区分大小写的查询

tsql - 除了RedGate之外,还有用于T-SQL的任何好的代码分析/重构工具吗?

sql - 如何摆脱 SQL Cross Join 查询结果中的重复行?