Date 使用JPA命名查询进行仅日期而不带时间的比较
我的数据库中有一列是Date 使用JPA命名查询进行仅日期而不带时间的比较,date,jpa,date-comparison,Date,Jpa,Date Comparison,我的数据库中有一列是DATE 生成实体时,它在实体类中创建了一个时间戳字段 @Column(name="MY_DATE") private Timestamp myDate; 我的传入对象是java.util.Date对象开始日期和结束日期 我需要编写一个JPA查询,该查询将获取my_date介于startDate和endDate之间的记录。这是在考虑时间 查询条件 o.myDate >=:inputDate AND o.myDate <=:inputDate o.myDate>
DATE
生成实体时,它在实体类中创建了一个时间戳
字段
@Column(name="MY_DATE")
private Timestamp myDate;
我的传入对象是java.util.Date
对象<代码>开始日期和结束日期
我需要编写一个JPA查询,该查询将获取my_date
介于startDate
和endDate
之间的记录。这是在考虑时间
查询条件
o.myDate >=:inputDate AND o.myDate <=:inputDate
o.myDate>=:inputDate和o.myDate您的实体代码是自动生成的吗?也许您应该尝试更新生成的实体代码。将myDate
字段的类型更改为Date
,而不是java.sql.Timestamp
。然后用@Temporal
对其进行注释,并指定DATE
作为类型,如下代码所示:
@Column(name="MY_DATE")
@Temporal(TemporalType.DATE)
private Date myDate;
在查询中,您可以使用BETWEEN
而不是比较运算符:
o.myDate BETWEEN :startDate AND :endDate
那么,你到底有什么问题?如果您提交整个查询以及执行查询时遇到的错误(如果有!),则会有所帮助。查询会将时间考虑在内。我怎么比较日期呢?哦,我明白了。。。您是否尝试过日期函数强制转换?日期(o.myDate)>=:输入日期和日期(o.myDate)