问题描述
我想对Postgresql进行本机查询,但是我无法使其与日期一起使用。我可以将date接收为null,也可以将date接收为date,因此在两种情况下我都希望工作:
" case when coalesce (?3,null) = ?3 then true " +
" else p.start_date = ?3 end"
如果?3是第三个参数,则可以为null,并且类型为LocalDate
我尝试了多种变体,但无法使其同时适用于两种情况,
- 如果
coalesce (?3,null) = ?3
的日期参数为null,它将起作用 - 如果
p.start_date = ?3
用于日期参数!= null,它将起作用
数据库中的列是日期 谢谢:)
解决方法
这对我有用:
case when ?3 <> '' then p.start_date = (cast(?3 as date))
else 1 = 1 end
因此,我正在传递字符串参数并将其转换为日期,因为没有其他方法对我有用