gpt4 book ai didi

java - 在 Java Spring 的 MapSqlParameterSource 中使用日期

转载 作者:行者123 更新时间:2023-11-30 08:31:03 27 4
gpt4 key购买 nike

我想获取 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
  • 带时区的类型时间戳的输入语法无效

最佳答案

我觉得还要看你的数据库字段的数据类型。例如在 MySQL 中有 date, datetime and timestamp .对我来说,有一个 MySQL datetime 并使用 java.util.Date 对象创建一个 java.sql.Date 并指定 Types.TIMESTAMP有效(startDatejava.util.Date 对象):

MapSqlParameterSource namedParams = new MapSqlParameterSource();
namedParams.addValue("start_date", new java.sql.Date(startDate.getTime()), Types.TIMESTAMP);

关于java - 在 Java Spring 的 MapSqlParameterSource 中使用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40865197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com