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 子句中是否存在时间类型分区列与其他类型进行比较的情况。