(本文档仅供参考)
问题
日期时间类型系统函数的入参为日期类型参数时,执行预览报传入的参数值不合法。
SQL查询中需要获取参数值的月份信息,使用系统函数MonthAdd(),执行报错,提示“传入的参数值不合法:Date format error:··· ···”,如图,如果写成静态值:2021-05-01,又能执行成功,是什么原因?
问题原因
日期类型参数值会根据数据库类型转换成sql片段,有的数据库是在参数值左右加单引号如 ’参数值‘,有的是拼上数据库的日期转换函数如 toDate(’参数值‘)。传入系统函数的是sql片段,当这个数据库生成的sql片段不是简单的加单引号时,就会出现传入参数不合法的错误
解决方案
可以将日期类型参数修改为字符串类型。