我想在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);
我为不同的尝试得到了不同的错误。 即
答案 0 :(得分:2)
我认为这也取决于您数据库字段的数据类型。例如,在MySQL中,有date
, datetime
and timestamp
。
对于我来说,拥有一个MySQL UPDATE tblDM INNER JOIN tblIS ON ucase(tblDM.PatchDM) like '*'&ucase(tblIS.DMPatch)&'*'
SET tblDM.Field1 = [tblIS].[Field1]
并使用java.util.Date对象创建一个datetime
并指定有效的java.sql.Date
(Types.TIMESTAMP
是startDate
对象):
java.util.Date
答案 1 :(得分:0)
我删除了单引号,它对我有用。
dynamicColumnsQuery = new StringBuilder();
dynamicColumnsQuery.append("SELECT concat(TO_CHAR(months, 'MonYY'),' Adverts') AS monthYear FROM generate_series( CAST(:fromDate");
dynamicColumnsQuery.append(" as DATE) , CAST(:toDate");
dynamicColumnsQuery.append(" as DATE) , '1 month' ) AS months");