0

私は奇妙な問題を抱えています。Java アプリから実行しているコードに更新クエリがあります。2 つの java.sql.Date パラメータを渡す PreparedStatement があります。クエリを実行すると、次の例外がログに記録されます。

DatabaseObject - 更新クエリの実行に失敗しました: UPDATE data_cache_cycle_data dc SET last_7days_receipts = sq.x FROM (SELECT asin,count(asin) as x FROM inventory WHERE created_date = (date '2012-08-22 +02:00:00' - ' 6 day'::interval) GROUP BY asin ) AS sq WHERE dc.asin = sq.asin .

org.postgresql.util.PSQLException:
エラー: "$2" またはその付近で構文エラーが発生しました

ポジション: 177

    org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2101) で
    org.postgresql.core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl.java:1834) で
    org.postgresql.core.v3.QueryExecutorImpl.execute (QueryExecutorImpl.java:255) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:510) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags (AbstractJdbc2Statement.java:386) で
    org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate (AbstractJdbc2Statement.java:332) で

ここで、例外ログからクエリをコピーして貼り付けると、pgAdmin で問題なくクエリが実行されます。

私は何が欠けていますか?

4

2 に答える 2

0

'6 day'::intervalを使用しないで、適切な CAST(): CAST('6 day' AS interval)を使用してください

于 2012-08-22T20:40:19.203 に答える