次のステートメントを使用してJDBCクエリを作成しようとしています
String query = "SELECT COLUMN1,DATECOLUMN2 FROM tableName +
"where datediff(d,DATECOLUMN2,getdate()) <= 1";
st = conn1.createStatement();
rs = st.executeQuery(query); //receiving error here
次のエラーメッセージが表示されます
java.sql.SQLException: "d" is not a recognized table hints option. If it is intended as a parameter to a table-valued function or to the CHANGETABLE function, ensure that your database compatibility mode is set to 90.
何らかの理由でクエリがdatediff関数を認識していないと確信しています。以前、同じアプリケーションでHQLを使用して値を取得していたため、理由がわかりません。
私が使用した代替機能を使用する試みで
{fn TIMESTAMPADD( SQL_TSI_DAY, 1, CURRENT_TIMESTAMP)}
しかし、後で失敗しました。これはDerbyデータベースにのみ使用されていることがわかりました。
誰かが適切なSQL関数を使用して、JDBCを使用して日付を現在の日付と比較するのを手伝ってくれますか?