无论白天,T-SQL每小时​​都能获得一次

Dry*_*ong 2 sql t-sql sql-server

使用此帖子中的已接受答案在SQL Server中计算每小时的行数,并将完整的日期时间值作为结果我能够按小时获取记录计数,但是,我想这样做以便当天不会物.

无论记录来自哪一天,我如何按当天的小时计算记录数?

例如,下表:

+----------+-------------------------+
| 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 |
+----------+-------------------------+
Run Code Online (Sandbox Code Playgroud)

将导致以下数据集:

+-------------+-------------+
| recordCount |  timeStamp  |
+-------------+-------------+
|           5 | 11:00:00.00 |
|           2 | 12:00:00.00 |
|           1 | 13:00:00.00 |
+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)

Gio*_*sos 6

你可以使用DATEPART:

SELECT DATEPART(HOUR, [datetime]), COUNT(*)
FROM mytable
GROUP BY DATEPART(HOUR, [datetime])
Run Code Online (Sandbox Code Playgroud)

该函数返回一个整数,实际上是从DATETIME字段中提取小时值.