给NamedParameterJdbcOperation获取日期作为参数时,JDBC查询不起作用(在params map中)

问题描述 投票:0回答:1

我尝试使用JDBC查询我的Mysql数据库。

我用的是org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations

DATE_FROM中的my_table列定义为DATE列(也是PK)。

有效查询的简化版本如下所示:

SELECT * FROM my_table WHERE DATE_FROM >='2015-03-01';

但后来,我尝试将'2015-03-01'更改为命名参数。查询看起来像这样:

SELECT * FROM my_table WHERE DATE_FROM >=:fromDate;

虽然我像这样调用了NamedParameterJdbcOperations.update()

map.put("fromTime", '2015-03-01');
namedParameterJdbcOperations.update(sql, map);

虽然根据我的理解,一切都保持不变,但我得到:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ''2015-03-01'' for column 'MEASUREMENT_DATE' at row 1.

有人知道为什么吗?

java mysql date jdbc named-parameters
1个回答
0
投票

您是否意识到您在SQL“fromDate”中命名了占位符,并在地图中将其命名为“fromTime”?

© www.soinside.com 2019 - 2024. All rights reserved.