【发布时间】:2016-05-09 12:07:19
【问题描述】:
我在 UTC 时区的数据库和在 UTC 时间插入的数据。我想按小时对 IST 时间数据的所有值求和并分组。如下图,
id data_id value serverTime
1 2 100 2016-05-02 18:30:54
2 2 100 2016-05-02 18:45:54
4 2 200 2016-05-02 19:00:54
5 2 100 2016-05-02 19:15:54
6 2 100 2016-05-02 19:30:54
7 2 100 2016-05-02 19:40:54
查询
select sum(value) as value, serverTime as date
from Data_table
where data_id=2
and serverTime between CONVERT_TZ('2016-05-03 00:00:01','+00:00', '-05:30')
and CONVERT_TZ('2016-05-03 10:45:24','+00:00', '-05:30')
group by year(date),month(date),week(date),day(date),hour(date);
上面的查询给出的结果是:
200
500
但期待输出:
600
100
因为IST 12 AM = UTC- 05:30 表示18:30 to 19:30,但这里我的查询只计算18:30 to 19:00、19:00 to 20:00、20:00 to 21:00,这不是准确度值。
我想计算 18:30 to 19:30 和 19:30 to 20:30 的值以获得 IST 时间数据的准确度值。
如何解决?
【问题讨论】:
-
你倒过来了。 5:30 IST 是 00:00 UTC。
-
@MattJohnson:我认为 5:30 IST 将是 4:30 UTC(欧洲/都柏林)。 :-)
-
@MattJohnson 如果我们按小时计算,那么它应该是 2016 年 5 月 2 日 18:30 到 19:30 的值的总和,因为 18:30 到 19:30 是上午 12:00 到UTC 时间 2016 年 5 月 3 日 12:59。这是我要计算的。
-
@HowardHinnant - 哈哈。我只是假设他们的意思是印度,而不是爱尔兰。 :)