Java JDBC查询不';当给定NamedParameterJdbcOperation将日期作为参数(在params映射中)时不起作用
我尝试使用JDBC查询我的Mysql数据库 我使用Java JDBC查询不';当给定NamedParameterJdbcOperation将日期作为参数(在params映射中)时不起作用,java,mysql,date,jdbc,named-parameters,Java,Mysql,Date,Jdbc,Named Parameters,我尝试使用JDBC查询我的Mysql数据库 我使用org.springframework.jdbc.core.namedparam.namedparameterjdbc操作 my\u表中的DATE\u列定义为DATE列(也是主键) 有效的查询的简化版本如下所示: SELECT * FROM my_table WHERE DATE_FROM >='2015-03-01'; SELECT * FROM my_table WHERE DATE_FROM >=:fromDate; map
org.springframework.jdbc.core.namedparam.namedparameterjdbc操作
my\u表
中的DATE\u列定义为DATE
列(也是主键)
有效的查询的简化版本如下所示:
SELECT * FROM my_table WHERE DATE_FROM >='2015-03-01';
SELECT * FROM my_table WHERE DATE_FROM >=:fromDate;
map.put("fromTime", '2015-03-01');
namedParameterJdbcOperations.update(sql, map);
但随后,我尝试将“2015-03-01”更改为命名参数。查询如下所示:
SELECT * FROM my_table WHERE DATE_FROM >='2015-03-01';
SELECT * FROM my_table WHERE DATE_FROM >=:fromDate;
map.put("fromTime", '2015-03-01');
namedParameterJdbcOperations.update(sql, map);
当我调用NamedParameterJdbcOperations.update()
时,如下所示:
SELECT * FROM my_table WHERE DATE_FROM >='2015-03-01';
SELECT * FROM my_table WHERE DATE_FROM >=:fromDate;
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”使用java.SQL.Date
。@MarkrotVeel,我试过了,它给出了相同的异常。