在Ubuntu中用SQL查询GridDB时序数据时遇'timestamp列不存在'错误求助
GridDB查询时序数据报错"Unknown column 'timestamp' in 'where clause'"的原因及解决
原因
timestamp是GridDB SQL的保留关键字,直接在WHERE子句中使用未转义的timestamp作为列名时,数据库会将其解析为关键字而非列名,因此报错找不到该列。- 若你是通过GridDB原生API创建的时序容器,也可能存在创建时自定义了时间列(rowkey)名称,导致实际列名并非
timestamp的情况(不过你已确认列存在,此情况概率较低)。
解决方法
- 转义保留关键字列名:用反引号(
)将timestamp`列名包裹,明确告知数据库这是列名而非关键字,修改后的查询语句如下:
SELECT * FROM my_time_series_table WHERE `timestamp` >= '2023-01-01' AND `timestamp` <= '2023-02-01';
- 确认列名准确性:通过GridDB的管理工具(如
gs_sh)执行DESCRIBE my_time_series_table;命令,再次确认时间列的准确名称,若实际名称与你使用的不符,替换为正确列名即可。
内容的提问来源于stack exchange,提问作者John Woods
相关产品推荐
相关产品推荐

