仅按时间对datetime列进行分组

时间:2016-06-25 18:43:40

标签: sql sql-server datetime sql-server-2012 group-by

我有一个日期格式的列,间隔为15分钟,另一列称为带有相应数据的数据值。我想将数据值汇总到1小时。我附加了一个屏幕截图。 enter image description here。所以我的新列应该具有聚合值" DATA_VALUES"柱。而datetime列应该只代表几小时而不是15分钟。请帮助,我已尝试使用cast()转换为时间但无法继续进行。

1 个答案:

答案 0 :(得分:1)

您可以使用以下公式将日期截断为小时:

DATEADD(HOUR, DATEDIFF(HOUR, 0, the-date-value), 0)

所以完整的查询是:

SELECT
  DATEADD(HOUR, DATEDIFF(HOUR, 0, KEY_POINT_DTTM_15MIN), 0),
  SUM(DATA_VALUE)
FROM mytable
GROUP BY
  DATEADD(HOUR, DATEDIFF(HOUR, 0, KEY_POINT_DTTM_15MIN), 0)