使用TIMESTAMP范围查询GridDB时触发[100009]语法错误求助
解决GridDB TimeSeries容器时间范围查询的语法错误
你的查询报错是因为GridDB的SQL语法中,INTERVAL的写法和标准SQL不同,不需要给时间单位加单引号,同时要注意时间运算的正确格式。
错误原因
你写的INTERVAL '1 DAY'不符合GridDB的语法规范,GridDB要求INTERVAL后直接跟数值和时间单位,不需要单引号。
修正后的代码
from griddb_python import * factory = StoreFactory.get_instance() gridstore = factory.get_store(host="127.0.0.1", port=10001, cluster_name="myCluster", username="admin", password="admin") container = gridstore.get_container("sensor_data") # 修正时间范围查询的语法 query = container.query("SELECT * WHERE timestamp > NOW() - INTERVAL 1 DAY") rs = query.fetch()
额外说明
- 如果你的TimeSeries容器的时间列不是
timestamp,需要替换为你实际定义的时间主键列名 - 也可以使用
TIMESTAMPADD函数来实现相同逻辑,写法如下:
SELECT * WHERE timestamp > TIMESTAMPADD(DAY, -1, NOW())
这种写法在GridDB中同样有效,且可读性更强。
内容的提问来源于stack exchange,提问作者Neha Sharma
相关产品推荐
相关产品推荐

