kdb 获取最近 1 小时的记录
kdb get last 1 hour records
我需要 select 并获取与前 1 小时和 24 小时相关的行。为了处理 24 小时,我使用了这段代码。大约 1 小时,我怎样才能得到它?
yesterday = datetime.now() - timedelta(1)
yesterday = datetime.strftime(yesterday, '%Y-%m-%d')
q.sendSync('{[x;z]select from trades where DateTime > x,symbol=z}', np.datetime64(yesterday,'D'), np.string_('ETH-USDT'))
kdb 保存的数据帧
DateTime symbol
0 2022-04-13 12:59:00.171 b'ETH-USDT'
1 2022-04-13 12:30:00.171 b'ETH-USDT'
2 2022-04-13 10:55:00.171 b'ETH-USDT'
3 2022-04-12 10:59:00.171 b'ETH-USDT'
4 2022-04-10 10:53:00.185 b'ETH-USDT'
5 2022-04-09 10:50:01.114 b'ETH-USDT'
您可以将它用作查询时间,而不是昨天 - 这里我们只是从当前时间减去一个小时并将其格式化为日期和小时 + 分钟,而不仅仅是一天
hourago = datetime.strftime(datetime.now() - timedelta(hours = 1), '%Y-%m-%d %H:%M')
q.sendSync('{[x;z]select from trades where DateTime > x,symbol=z}', np.datetime64(hourago,'ms'), np.string_('ETH-USDT'))
还值得注意的是,您可以完全在 kdb 中执行此操作,而无需 python date/time 操作
q.sendSync('{select from trades where DateTime > .z.p-0D01,symbol=x}', np.string_('ETH-USDT'))
.z.p 给出当前时间戳,-0D01 从这个时间减去一个小时。
我需要 select 并获取与前 1 小时和 24 小时相关的行。为了处理 24 小时,我使用了这段代码。大约 1 小时,我怎样才能得到它?
yesterday = datetime.now() - timedelta(1)
yesterday = datetime.strftime(yesterday, '%Y-%m-%d')
q.sendSync('{[x;z]select from trades where DateTime > x,symbol=z}', np.datetime64(yesterday,'D'), np.string_('ETH-USDT'))
kdb 保存的数据帧
DateTime symbol
0 2022-04-13 12:59:00.171 b'ETH-USDT'
1 2022-04-13 12:30:00.171 b'ETH-USDT'
2 2022-04-13 10:55:00.171 b'ETH-USDT'
3 2022-04-12 10:59:00.171 b'ETH-USDT'
4 2022-04-10 10:53:00.185 b'ETH-USDT'
5 2022-04-09 10:50:01.114 b'ETH-USDT'
您可以将它用作查询时间,而不是昨天 - 这里我们只是从当前时间减去一个小时并将其格式化为日期和小时 + 分钟,而不仅仅是一天
hourago = datetime.strftime(datetime.now() - timedelta(hours = 1), '%Y-%m-%d %H:%M')
q.sendSync('{[x;z]select from trades where DateTime > x,symbol=z}', np.datetime64(hourago,'ms'), np.string_('ETH-USDT'))
还值得注意的是,您可以完全在 kdb 中执行此操作,而无需 python date/time 操作
q.sendSync('{select from trades where DateTime > .z.p-0D01,symbol=x}', np.string_('ETH-USDT'))
.z.p 给出当前时间戳,-0D01 从这个时间减去一个小时。