zoukankan      html  css  js  c++  java
  • 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;

    上边飘红的地方,就是重点。两个数字解决了一天·····有点无语

     最后发现。正确了。满足我的需求了。。可以回家了

  • 相关阅读:
    【Spring Boot】关于上传文件例子的剖析
    GIT初始学习记录
    Java代码混淆工具ProGuard
    Kafka 概念、单机搭建与使用
    流网络分析系统-SNAS
    【Spring Boot】使用JDBC 获取相关的数据
    二叉树【按层打印、序列化、反序列化】
    跨域共享cookie
    启动kafka集群,关闭kafka集群脚本
    kafka-consumer.properties
  • 原文地址:https://www.cnblogs.com/52-qq/p/14180570.html
Copyright © 2011-2022 走看看