0

我有一个应用程序存储来自美国各地车辆的远程信息处理。美国有多个时区,车辆可以在活动时处于活动状态并跨时区移动。我希望能够查询“昨天”并计算所有车辆已激活的所有“激活时间”。

Amazon Timestream 中的所有“时间”都作为时间戳存储在 UTC 中,因此我无法将时区偏移量添加到时间中。

原始数据:

车辆 全部小时数 时间
美国广播公司 10 2021-03-20T20:00:00 EST
美国广播公司 20 2021-03-21T10:00:00 EST
美国广播公司 30 2021-03-21T18:00:00 EST
定义 40 2021-03-21T02:00:00 EST
定义 50 2021-03-21T15:00:00 EST
定义 60 2021-03-21T20:00:00 EST

存储数据:

车辆 测量名称 测量值::双 时间
美国广播公司 全部小时数 10 2021-03-21 01:00:00
美国广播公司 全部小时数 20 2021-03-21 15:00:00
美国广播公司 全部小时数 30 2021-03-21 23:00:00
定义 全部小时数 40 2021-03-21 10:00:00
定义 全部小时数 50 2021-03-21 23:00:00
定义 全部小时数 60 2021-03-22 04:00:00

询问:

SELECT vehicle, SUM('measure_value::double') AS totalHours
FROM "Database"."Table" 
WHERE time BETWEEN '2021-03-18 00:00:00' AND '2021-03-18 23:59:59' AND  measure_name = 'totalHours'
GROUP BY vehicle

预期的:

车辆 全部小时数
美国广播公司 50
定义 150

回报:

车辆 全部小时数
美国广播公司 60
定义 90
  • 如果我在 UTC 时间查询,它将过期 5-8 小时。
  • 如果我在东部时间 (UTC+5) 进行查询,那么在加利福尼亚 (UTC+8) 运行的任何车辆都将在 4 小时内获取数据。

我如何在所有时区查询昨天而不单独查询所有时区?

4

0 回答 0