postgresql-按照小时分组统计
简单的问题描述:
1. Django后台配置的上海时间
2. postgresql采用了默认UTC时间
3. 后台跟数据库差了8个小时,页面显示没得问题
4. 当通过orm执行原生SQL的时候发现按照小时统计的结果还是晚了八个小时
网上找了很多教程,有让改postgresql配置文件,timezone改为PRC。改完之后数据库显示没问题。但是通过SQL分组查询还是会有问题
SELECT (to_char(take_photo_time, 'yyyy-mm-dd:HH')) AS "take_photo_time", COUNT(take_photo_time) AS "count" FROM "device_devicephotomodel" WHERE "device_devicephotomodel".take_photo_time BETWEEN '2020-12-23T00:00:00' :: TIMESTAMP AND '2020-12-24T00:00:00' :: TIMESTAMP GROUP BY (to_char(take_photo_time, 'yyyy-mm-dd:HH')) ORDER BY "take_photo_time" DESC;
统计到的结果,依然是晚了8个小时
通过date_trunte可以解决。但是还得调整接口,太麻烦
SELECT DATE_TRUNC( 'HOUR', take_photo_time ) AS "take_photo_time", COUNT ( take_photo_time ) AS "count" FROM "device_devicephotomodel" WHERE "device_devicephotomodel".take_photo_time BETWEEN '2020-12-23T00:00:00' :: TIMESTAMP AND '2020-12-24T00:00:00' :: TIMESTAMP GROUP BY ( DATE_TRUNC('HOUR', take_photo_time)) ORDER BY "take_photo_time" DESC;
于是找了一些比较官方的文档,说是需要·····················。。直接贴解决方式
SELECT (to_char(take_photo_time, 'yyyy-mm-dd:HH24')) AS "take_photo_time", COUNT(take_photo_time) AS "count" FROM "device_devicephotomodel" WHERE "device_devicephotomodel".take_photo_time BETWEEN '2020-12-23T00:00:00' :: TIMESTAMP AND '2020-12-24T00:00:00' :: TIMESTAMP GROUP BY (to_char(take_photo_time, 'yyyy-mm-dd:HH24')) ORDER BY "take_photo_time" DESC;
上边飘红的地方,就是重点。两个数字解决了一天·····有点无语
最后发现。正确了。满足我的需求了。。可以回家了
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/14180570.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)