我正在編寫一個小型的spring應(yīng)用程序,它在以下代碼的上下文中具有jdbc功能...我有以下爪哇來設(shè)置SQL查詢字符串: String sql = "SELECT " + " a.Id, " + " a.USER_ID ", " + " a.LAST_UPDATED " + "from " + " Schema.AwesomeTable a " + "where " + " a.LAST_UPDATED >= ?";并且我正在嘗試使用日期對象(讓我們想象一下,為了這個問題的簡短,我正在使用當(dāng)前日期):Date myDate = new Date(); // This is a java.util.Date我像這樣調(diào)用查詢:List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, new Object[]{myDate});當(dāng)我運行這個 - 我得到這個錯誤:2019-04-08 23:17:58 - Setting SQL statement parameter value: column index 1, parameter value [Tue Apr 08 23:17:58 CDT 2019], value class [java.util.Date], SQL type unknown我真的可以使用一些幫助 - 我已經(jīng)搜索了到處,我找到了一些信息,但我沒有看到任何我似乎能夠掌握的東西。
3 回答

瀟瀟雨雨
TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊
您可以將參數(shù)包裝在以下位置,也可以使用:java.sql.Date
import java.util.Date;
import java.time.LocalDate;
LocalDate dateTime = // some date here
Date startDate = Date.from(dateTime.atStartOfDay(ZoneId.systemDefault()).toInstant());

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
不能在 sql 查詢中直接使用類型的變量myDate
java.util.Date
Date myDate = new Date(); // This is a java.util.Date
您必須將其轉(zhuǎn)換為類型,您可以執(zhí)行以下操作:java.sql.Date
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
之后,您可以調(diào)用查詢,如下所示:
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql,sqlDate);
這將按預(yù)期工作。

慕雪6442864
TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
本地日期可以直接作為字符串在預(yù)置語句中傳遞**
jdbcTemplate.query(selectSqlQuery, ps -> { ps.setString(1, searchDate.toString()); }, new RowMapperForOutput());
查詢:
從表1中選擇*,其中日期(date_column)= ?
添加回答
舉報
0/150
提交
取消