DB选择java util date

时间:2016-05-25 12:31:55

标签: java sql date

数据库持久java.util.date,我需要一个查询,只使用java.util.date.获取2个日期之间的所有数据 我使用JPA 2.1

String sql = "SELECT * FROM table WHERE created > '"+date1+"' AND created < '"+date2+"'";

此查询始终提供包含0个元素的List

1 个答案:

答案 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);

然后execute the prepared statement