0

流入では、時間を gps モジュールで指定された時間に置き換えています。この 1432600783000 のような Unix エポック時間で日付を保存します。

influxdb で次のようなクエリを実行しようとすると:

select * from items where id = '11111111111' and time > 1432080000000s and time < 1432177199000s group by (1d)

日付 1432080000000: GMT: 2015 年 5 月 20 日水曜日 00:00:00 GMT タイムゾーン: 2015 年 5 月 19 日 21:00:00 GMT-3:00

日付 1432177199000: GMT: 2015 年 5 月 21 日木曜日 02:59:59 GMT あなたのタイムゾーン: 20/5/2015 23:59:59 GMT-3:00

何も返されません。日付をフィルタリングする正しい方法は何ですか。たとえば、2 つの日付の間にポイントを移動します。

ありがとう。

4

2 に答える 2

1

クエリの精度として秒を指定していますが、ミリ秒のタイムスタンプを指定しています。1432080000000sは 1432080000000 秒を意味し、これは 47350 年の 10 月 22 日です。

$ date -r 1432080000000 Thu Oct 22 16:00:00 PST 47350

GROUP BYまた、SELECT ステートメントで集計関数を使用せずにを実行することはできません。すべてのポイントの毎日の要約を要求し、その結果を毎日の値に集計する方法を提供することは意味がありません。GROUP BY 句を削除して、時間範囲内のすべてのポイントを返します。(また、GROUP BY 構文が正しくありません。適切な構文は次のようになりますGROUP BY time(1d)。)

クエリは次のようになります。select * from items where id = '11111111111' and time > 1432080000s and time < 1432177199s

于 2015-05-26T22:25:05.347 に答える
0

次のように、クエリにデータを UTC 時間に送信する前に変更する必要があります。

select * from items where id = '11111111111' and time > '2015-05-20 03:00:00' and time < '2015-05-20 03:00:00' + 1d  group by time(1d)

これを行うには、次のようにモーメントjsを使用しました。

moment.utc(date).format('YYYY-MM-DD hh:mm:ss')

次に、日付が 2015-05-20 03:00:00 の形式で送信され、現在のタイムゾーンが反映されます。

于 2015-05-27T12:36:55.097 に答える