如何在clickhouse中根据日期和时间段选择数据

pgky5nke  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(1063)

我想用这两种方法过滤一些数据 yyyymmdd (日期)和 hhmmss (时间),但clickhouse不支持 time 类型。所以我选择 datetime 把它们结合起来。但如何做到这一点:
这是我们的代码 dolphindb (支持 second 要表示的类型 hhmmss .

  1. select avg(ofr + bid) / 2.0 as avg_price
  2. from taq
  3. where
  4. date between 2007.08.05 : 2007.08.07,
  5. time between 09:30:00 : 16:00:00
  6. group by symbol, date

这是我们的代码 clickhouse ,但逻辑上有问题的代码。

  1. SELECT avg(ofr + bid) / 2.0 AS avg_price
  2. FROM taq
  3. WHERE
  4. time BETWEEN '2007-08-05 09:30:00' AND '2007-08-07 16:00:00'
  5. GROUP BY symbol, toYYYYMMDD(time)
  6. ;

如何像 dolphindb 代码?

crcmnpdw

crcmnpdw1#

假设你只想平均正常交易时间的交易价格,不包括盘后交易,那么一个可能的解决方案是:

  1. SELECT avg(ofr + bid) / 2.0 AS avg_price
  2. FROM taq
  3. WHERE
  4. toYYYYMMDD(time) BETWEEN 20070805 AND 20070807 AND
  5. toYYYYMMDDhhmmss(time)%1000000 BETWEEN 93000 and 160000
  6. GROUP BY symbol, toYYYYMMDD(time)

这将在指定的日期和时间内过滤taq表。

相关问题