您好,我有一个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/

10-09 00:36