在 Postgresql 中按时间间隔添加日期作为参数的准备语句

Vin*_*ini 3 sql postgresql date prepared-statement

这有效:

String query = "select DATE '2016-03-16' + interval '7 days'";
Run Code Online (Sandbox Code Playgroud)

但我想在准备好的语句中使用 '2016-03-16' 和 7 作为参数。怎么做?

我试过这样,但没有奏效:

String query = "select DATE ? + interval ?";
Object param[] = {"2016-03-16", "7 days"};
Run Code Online (Sandbox Code Playgroud)

Igo*_*nko 6

尝试类似:

select to_date(?, 'YYYY-MM-DD') + cast(? as interval)
Run Code Online (Sandbox Code Playgroud)

其他选择是使用类似的东西

select cast(? as date) + cast(? as interval)
Run Code Online (Sandbox Code Playgroud)

但这取决于日期转换的当前语言环境

  • 这个解决方案帮助了我。谢谢!出于好奇,你知道为什么 `$1::interval` 等价转换不起作用吗? (2认同)