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

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

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

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

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

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

如何像 dolphindb 代码?

crcmnpdw

crcmnpdw1#

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

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

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

相关问题