首页 > 解决方案 > 如何在 DolphinDB 中获取最近 n 天的数据

问题描述

我创建了一个如下表,

timestamp=[2019.06.01T09:00:00.000 ,2019.06.02T09:00:00.000,2019.06.20T09:00:00.000]
sym = `MS`MS`MS$symbol;                 
price= 49.6 29.46 29.52 ;           
qty = 2200 1900 2100 ;              
t1 = table(timestamp, sym, qty, price)

然后我在 DolphinDB Gui 中执行以下代码, select * from t1 记录集是 这样显示的。但我执行以下代码,

days=1000*60*60*24
select * from t1 where timestamp > now()-days*30

记录集为空, 如下所示

如何从 dolphindb 表中选择最近 n 天的数据?

标签: sqldolphindb

解决方案


您的代码有轻微的数据溢出问题。days是一个整数(4 个字节),并且 days * 30 的结果超过了整数的最大值。两种修复方法:

方法一:常数30转30l

days=1000*60*60*24
select * from t1 where timestamp > now()-days*30l

方法二:使用temporalAdd函数

select * from t1 where timestamp > temporalAdd(now(), -30, 'd')

推荐阅读