您好,我有一个sql更新,它要求日期类型为nullif。当我第一次提交没有nullif的更新时,使用一个null语句是很好的,但是第二次总是会出现一个错误。
UPDATE del_data.cncpt_rqst
SET prpsd_prodn_dt=#{cncptDt}
WHERE cncpt_rqst_id=#{cu.cncptRqstId}
但是对于nullif这样的
NULLIF(#{cncptDt},'')
它表示“”的类型是text而不是date。我试着通过“::date”强制转换为“todate”,输入null以便(#{cncptDt},null)
并强制转换为null到date都没有用。我在为这个问题伤脑筋,任何帮助都会令人惊奇
最佳答案
您应该将表达式转换为:
UPDATE del_data.cncpt_rqst
SET prpsd_prodn_dt = nullif(#{cncptDt}, '')::date
关于sql - 日期类型为NULLIF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46899664/