转载请注明出处:

  在 InfluxDB 中,默认的时区是 UTC(协调世界时)。所有的时间戳在数据写入时默认视为 UTC。这意味着如果没有在插入数据时指定其他时区,InfluxDB 会将所有时间数据处理为 UTC 时间。

  最近在使用 group by(1d) 进行数据汇总查询得时候,本应是北京时间一天得数据却查出了两天的数据:

> SELECT sum(rx_megabits_per_second) as in_traffic, sum(tx_megabits_per_second) as out_traffic FROM monitor.autogen.vpn_traffic_5m WHERE time >= '2024-12-12T16:00:00Z' and time <= '2024-12-13T02:39:54Z'  and vpn_id='l3_3023' group by time(1d), site_id, site_name FILL(0)
name: vpn_traffic_5m
tags: site_id=dae31a81-9336-4a76-838e-878144143bcd, site_name=ZTE
time in_traffic out_traffic
---- ---------- -----------
1733961600000000000 0.0007709866666666677 0.011690879999999997
1734048000000000000 0.0002471466666666666 0.003948480000000001
>

  group by(1d)会根据时间戳将每个数据点分配到它所属的那一天(基于 UTC 时间)。由于时间范围是从一天的北京0点到当天的早晨10点,因此 InfluxDB 会创建两个UTC时间组:一个是从12月12日下午4点开始到12月12日24点之前的所有数据,另一个是从12月13日0点开始到早晨的2点的数据(如果有的话)。

  由于时间范围跨越了午夜,并且使用了 GROUP BY time(1d),因此 InfluxDB 会自动根据日期边界(午夜)来分割数据。

  而我们想要查询的时间应该是使用东八区时间(比零时区时间快了8个小时)。在查询数据时,可以通过使用 time 函数将结果转换为其他时区。例如,可以使用 tz 选项以指定将 SELECT 的时间戳转换为指定的时区。 例如:

SELECT * FROM measurement_name WHERE time >= '2024-12-01T00:00:00Z' AND time <= '2024-12-31T23:59:59Z' tz('Asia/Shanghai')
  • 在这个示例中,查询结果的时间戳将转换为 Asia/Shanghai 时区。

  在实际应用的过程中,如下:

> SELECT sum(rx_megabits_per_second) as in_traffic, sum(tx_megabits_per_second) as out_traffic FROM monitor.autogen.vpn_traffic_5m WHERE time >= '2024-12-12T16:00:00Z' and time <= '2024-12-13T02:39:54Z'  and vpn_id='l3_3023' group by time(1d), site_id, site_name FILL(0) tz('Asia/Shanghai')
name: vpn_traffic_5m
tags: site_id=dae31a81-9336-4a76-838e-878144143bcd, site_name=ZTE
time in_traffic out_traffic
---- ---------- -----------
1734019200000000000 0.001018133333333335 0.01563936
>

influxdb group by(1d) 查询注意事项的更多相关文章

  1. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

  2. 【mybatis】【mysql】mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains no ...

  3. mysql group by分组查询

    分组的SQL语句有2个: group by 和分组聚合函数实现 partition by (oracle和postgreSQL中的语句)功能 group by + having 组合赛选数据 注意:h ...

  4. mysql group by分组查询后 查询个数

    mysql group by分组查询后 查询个数2个方法随便你选 <pre>select count(distinct colA) from table1;</pre>< ...

  5. group by分组查询

    有如下数据: 一个简单的分组查询的案例 按照部门编号deptno分组,统计每个部门的平均工资. select deptno,avg(sal) avgs from emp group by deptno ...

  6. Group by 分组查询 实战

    实战经历,由于本人在共享单车上班,我们的单车管理模块,可以根据单车号查询单车,但是单车号没有设置unique(独一无二约束),说以这就增加了单车号可能重复的风险,但是一般情况下,单车号是不会重复的,因 ...

  7. C#代码 利用MongoDB中Group聚合函数查询

    例子: public static void getUserRFM(DateTime beginTime, DateTime endTime)        {            MongoDat ...

  8. C#代码利用MongoDB中Group聚合函数查询

    例子: public static void getUserRFM(DateTime beginTime, DateTime endTime)        {            MongoDat ...

  9. SQL group by分组查询(转)

    本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳 ...

  10. mysql数据库分组(GROUP BY)查询实例

    1.使用松散(Loose)索引扫描实现 GROUP BY 何谓松散索引扫描实现 GROUP BY 呢?实际上就是当 MySQL 完全利用索引扫描来实现 GROUP BY 的时候,并不需要扫描所有满足条 ...

随机推荐

  1. MyBatis——案例——修改(修改全部字段,修改动态字段)

    修改-修改全部字段   1.编写接口方法:Mapper接口     参数:所有数据     结果:void(通过异常捕获判断成功修改与否)        int (表示sql语句影响的行数) /** ...

  2. Ftrace 进阶用法

    1 前言 本文为 Ftrace 系列文章第二篇,描述 Ftrace 进阶用法.上一篇文章中我们接触到了 Ftrace 基本概念,知道了如何 trace 一个函数,知道了如何 enable 一个 tra ...

  3. 深度学习 - Torch-TensorRT 推理加速

    深度学习 - Torch-TensorRT 推理加速 Torch-TensorRT 作为 TorchScript 的扩展. 它优化并执行兼容的子图,让 PyTorch 执行剩余的图. PyTorch ...

  4. 001 C#配置多个版本Swagger说明

    1. AddSwaggerGen AddSwaggerGen 是配置多个版本的swagger的关键 Path.Combine 当前项目运行的路径 UseSwaggerUI 主要分为 2 步骤  : 1 ...

  5. kotlin更多语言结构——>This表达式

    This表达式 为了表示当前的 接收者 我们使用 this 表达式: - 在类的成员中,this指的是该类的当前对象. - 在扩展函数或者带有接收者的函数字面值中,this 表示在点左侧传递的 接收者 ...

  6. MySQL数据的导出

    有时需要将MySQL数据库中的数据导出到外部存储文件中,MySQL数据库中的数据可以导出成sql文本文件.xml文件或者html文件.本节将介绍数据导出的常用方法. 11.4.1  使用SELECT- ...

  7. MySql5.7及以上 ORDER BY 报错问题

    一.问题 本人使用的MySql版本是8.0的 当MySql5.7及以上的版本执行带有 ORDER BY 的SQL语句时可能会报错. 例如,执行以下mysql语句: SELECT id, user_id ...

  8. Java学习十六—掌握注解:让编程更简单

    一.关于注解 1.1 简介 Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据.它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译.部署或运行时进 ...

  9. 我开源了一个短视频应用(Go+React)|DouTok2.0 项目介绍

    前言 大家好,这里是白泽,拖更了一段时间,抱歉.在 DouTok2.0 可以初步允许大家接入开发之后,这篇文章才得以出炉. DouTok:一个开源的 web 端的短视频应用,采用微服务架构,包含前后端 ...

  10. 如何使用程序生成一个复杂的2D迷宫游戏地图

    相关: I Solved The World's Hardest Maze (with Code) 本文不做过多的内容介绍,本文主要是分享上面的这个视频内容,该内容介绍了一些自动生成复杂2D迷宫的算法 ...