sqlCol的第一个参数是列名,虽然,sqlCol("date("+dateCol+")"),这种写法执行出来的结果是:
< date(date) >
看起来好像没什么问题,但是解析的时候,会将“date(date)”作为一个列名来解析
正确的使用方法是:sqlCol(dateCol, date),这样解析出来的结果是:
< date(date) as date >
这个就是把date作为一个列名,而后面的date是函数,是对date列作取日期操作,完整代码如下:
t1=table(`A`A`B`B as symbol, 2021.04.15 2021.04.16 2021.04.15 2021.04.16 as date, 12 13 21 22 as price) updCol = `price dateCol = `date u = sqlColAlias( expr(sqlCol(updCol), +, -1) , updCol ) w = expr(sqlCol(dateCol, date), ==, 2021.04.15) sqlUpdate(table=t1 ,updates=u ,where = w).eval()