簡體   English   中英

在 Postgresql 中按時間間隔添加日期作為參數的准備語句

[英]Prepared statement with date added by interval as parameter in Postgresql

這有效:

String query = "select DATE '2016-03-16' + interval '7 days'";

但我想在准備好的語句中使用 '2016-03-16' 和 7 作為參數。 怎么做?

我試過這樣,但沒有奏效:

String query = "select DATE ? + interval ?";
Object param[] = {"2016-03-16", "7 days"};

嘗試類似:

select to_date(?, 'YYYY-MM-DD') + cast(? as interval)

其他選擇是使用類似的東西

select cast(? as date) + cast(? as interval)

但這取決於日期轉換的當前語言環境

如果使用 Java,我會說最干凈的方法是使用org.postgresql.util.PGInterval

將您的查詢設置如下(不要提及“間隔”):

String query = "select DATE ? + ?";

並以這種方式添加准備好的語句值:

stmt.setDate(1, java.sql.Date.valueOf("2016-03-16"));
stmt.setObject(2, new PGInterval(0, 0, 7, 0, 0, 0));

實際上,使用PGInterval表示整個interval '7 days'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM