数据库持久java.util.date
,我需要一个查询,只使用java.util.date.
获取2个日期之间的所有数据
我使用JPA 2.1
String sql = "SELECT * FROM table WHERE created > '"+date1+"' AND created < '"+date2+"'";
此查询始终提供包含0个元素的List
答案 0 :(得分:2)
问题是您的日期是作为字符串值添加到SQL查询中的。数据库变得像:
String sql = "SELECT * FROM table WHERE created > 'Wed May 25 14:33:18 SAST 2016' and created < 'Wed May 25 14:33:18 SAST 2016'";
数据库将其视为一个字符串,并解释了它无法正常工作的原因。
解决它的唯一最佳方法是使用绑定变量::
String sql = ""SELECT * FROM table WHERE created > ? AND created < ?"
//Create the query object using that SQL string, then set values
sqlQuery.setParameter(1, date1);
sqlQuery.setParameter(2, date2);