【发布时间】:2017-04-13 09:48:33
【问题描述】:
我想获取 start_date 到 end_date 之间的结果,以便找到我的产品报告。
sql = new StringBuilder()
.append(" select oi.last_modified,oi.product_key")
.append(" from orders o join order_item oi ")
.append(" on oi.id_order = o.id ");
.append(" AND o.created between '")
.append(":start_date") // line - 1
.append("' and '")
.append(":to_date"); // line - 2
在两行中(第 1 行和第 2 行) 我正在尝试使用我正在使用的预防技术
MapSqlParameterSource namedParams = new MapSqlParameterSource();
所以为了实现这一点,我尝试了很多组合但没有运气。
namedParams.addValue("start_date","start_date",Types.TIMESTAMP);
namedParams.addValue("to_date","to_date",Types.VARCHAR);
不同的尝试我得到不同的错误。 即
- java.util.Date 无法转换为 java.sql.Date
- 带时区的时间戳类型的输入语法无效
【问题讨论】:
-
:start_date 和 :to_date 的数据类型是什么
-
为什么你的中间条件中有引号(')?
-
@ThomasRisberg 这是日期检查器,所以我使用单引号。
-
@kuhajeyan 都是 db 中的时间戳数据类型
标签: java spring spring-jdbc jdbctemplate sqlmap