> select midprice from TSLA_0p5s limit 100
name: TSLA_0p5s
time midprice
---- --------
2015-07-15T09:00:00Z 267.1
2015-07-15T09:00:00.499500032Z 267.1
2015-07-15T09:00:01Z 267.1
2015-07-15T09:00:01.499500032Z 267.1
2015-07-15T09:00:02Z 267.1
2015-07-15T09:00:02.499500032Z 267.1
2015-07-15T09:00:03Z 267.1
2015-07-15T09:00:03.499500032Z 267.1
2015-07-15T09:00:04Z 267.1
2015-07-15T09:00:04.499500032Z 267.1
2015-07-15T09:00:05Z 267.1
2015-07-15T09:00:05.499500032Z 267.1
2015-07-15T09:00:06Z 267.1
2015-07-15T09:00:06.499500032Z 267.1
2015-07-15T09:00:07Z 267.1
2015-07-15T09:00:07.499500032Z 267.1
2015-07-15T09:00:08Z 267.1
2015-07-15T09:00:08.499500032Z 267.1
2015-07-15T09:00:09Z 267.1
2015-07-15T09:00:09.499500032Z 267.1
В приведенном выше примере из базы данных вы можете видеть, что различия между временными метками не являются регулярными. Когда я записывал данные в базу данных с помощью [influenxdb-python] [1], timedelta была уникальной и была установлена на 0,5 секунды. Здесь вы можете заметить, что
2015-07-15T09: 00: 00.499500032Z - 2015-07-15T09: 00: 00Z = 0,49950032 секунды (**)
и
2015-07-15T09: 00: 01Z - 2015-07-15T09: 00: 00.499500032Z = 0,50049968
второй (***)
Если я попытаюсь group by
, временные метки теперь исправны, но это влияет на качество функций
> select mean(midprice) from TSLA_0p5s where time >= '2015-07-15T09:30:00Z' AND time <= '2015-07-15T10:30:00Z' group by time(500ms) fill(0) limit 100
name: TSLA_0p5s
time mean
---- ----
2015-07-15T09:30:00Z 267.01
2015-07-15T09:30:00.5Z 0
2015-07-15T09:30:01Z 266.895
2015-07-15T09:30:01.5Z 0
2015-07-15T09:30:02Z 266.7725
2015-07-15T09:30:02.5Z 0
2015-07-15T09:30:03Z 266.7675
2015-07-15T09:30:03.5Z 0
2015-07-15T09:30:04Z 266.765
2015-07-15T09:30:04.5Z 0
2015-07-15T09:30:05Z 266.765
2015-07-15T09:30:05.5Z 0
2015-07-15T09:30:06Z 266.765
2015-07-15T09:30:06.5Z 0
2015-07-15T09:30:07Z 266.765
2015-07-15T09:30:07.5Z 0
2015-07-15T09:30:08Z 266.765
2015-07-15T09:30:08.5Z 0
2015-07-15T09:30:09Z 266.765
2015-07-15T09:30:09.5Z 0
2015-07-15T09:30:10Z 266.765
2015-07-15T09:30:10.5Z 0
2015-07-15T09:30:11Z 266.765
2015-07-15T09:30:11.5Z 0
2015-07-15T09:30:12Z 266.765
2015-07-15T09:30:12.5Z 0
2015-07-15T09:30:13Z 266.76
2015-07-15T09:30:13.5Z 0
2015-07-15T09:30:14Z 266.7475
Я ожидаю округлить отметку времени до 0.5
вместо небольшого отклонения с 0.49950032
и 0.50049968
. Я, конечно, могу округлить с group by
, но это, безусловно, повлияет на характер других функций, связанных с каждой отметкой времени.
Есть ли способ округлить метки времени до десятых, не влияя на функции?