我尝试使用JDBC查询Mysql数据库。
我使用org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations
。
my_table
中的列DATE_FROM
被定义为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"?