sql-server - 从早上 7:00 开始按 24 小时时段分组
问题描述
我有一些高频数据需要从早上 7:00 开始按 24 小时分组。我怎样才能做到这一点?
例如,每 5 分钟有一个时间戳,我想按天对其进行分组,但每天从早上 7:00 开始。
我该怎么做呢?
2016 年的 SQL 服务器。
解决方案
我假设您的时间可能是 UTC。我会考虑将时间转换为您需要的时区。然后它为您提供了更多关于如何处理数据的选项,您还可以为不同区域的人自定义报告。有关时区的一些信息,我发现了这个 stackoverflow 帖子。
使用 sql 查询将日期时间值从一个时区转换为 UTC 时区
在 group by 子句中这样的东西应该可以工作。下面的代码表示如果小时数低于 8 点,那么它仍然是昨天,否则它真的是今天。您需要将 getdate() 替换为正确的列。如果我认为时间是 UTC/GMT 是正确的,我建议您将其转换为您想要的时区。
case when datepart(hh, getdate())<8 then
cast((DATEADD(day, -1, getdate())) as date)
else
cast(getdate() as date)
end
推荐阅读
- firebase - 在 Google Firestore 规则中访问 Cookie
- python - python pandas - 使用 WECO 规则对 groupby 进行评分并输出 groupby 分数
- oauth-2.0 - 无需用户登录的 Javascript 客户端的 IdentityServer4 隐式流程
- javascript - TypeError:无法读取未定义的属性“displayName”
- java - 在JTextPane java swing中填充直线矩形后无法与视图同步
- html - Html 3d 视频播放器
- json - Angular 5 - 获取对象时出错
- html - 的价值
- node.js - 在 Firebase 函数中编写响应操作的问题
- regex - notepad++正则表达式查找和计数或复制