S02040
错误代码
S02040
报错信息
The temporal partitioning column <xxx> must be compared with a temporal object in the WHERE clause. RefId:S02040
错误原因
在 select 查询的 where 子句中,时间类型的分区列只能与时间比较,不能与其他类型比较。下面的例子将时间类型的分区列与整数进行比较,将导致报错:
dbName = "dfs://test222"
if (existsDatabase(dbName)) {
dropDatabase(dbName)
}
t = table(2023.01.01..2023.01.03 as tradeDate)
db = database(dbName, VALUE, 2023.01.01..2023.01.03)
pt = db.createPartitionedTable(t, `pt, `tradeDate)
pt.append!(t)
select * from pt where tradeDate > 1
解决办法
检查 where 子句中是否存在时间类型分区列与其他类型进行比较的情况。