我尝试使用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.
有人知道为什么吗?
您是否意识到您在SQL“fromDate”中命名了占位符,并在地图中将其命名为“fromTime”?