1

我知道这是一个常见问题,但我找不到与我的情况相匹配的东西。所以我们开始吧。

我有一个名为 RECORDED_ENTRIES 的表,其中包含列 ID (int) 和 CreateDate (datetime)。

无论实际日期如何,我都想按 24 小时按小时对数据进行分组。

例如,我希望输出为:

00:00 - 2
01:00 - 3
02-00 - 12
....
23:00 - 1

目的是为图表创建数据,该图表将按一天中的时间显示记录的条目

我还需要按 Day 的名称对数据进行分组。

谢谢

4

2 回答 2

2

你想要的是:

GROUP BY DATEPART(HH,CreateDate)

SQLFiddle

于 2013-04-09T09:30:06.190 回答
0

您可以在 sql server 中使用 CONVERT() 函数,它的作用类似于 CAST() 但您可以使用样式!convert(varchar(2),,108) 将使用 108 代码,即 HH:MM:SS。查看http://www.sql-server-helper.com/tips/date-formats.aspx

例子:

DECLARE@d DATETIME= '2013-03-02 19:45';
SELECT
@d AS dt
,CONVERT(VARCHAR(2),@d,108) AS theHour
于 2013-04-09T09:37:22.663 回答