簡體   English   中英

如何在使用JPQL的日期查詢中忽略時間?

[英]How to ignore the Time in a Date Query with JPQL?

我在使用日期(忽略時間)對JPQL進行查詢時遇到問題。 這是我的方法:

@Override
public List<Event> findByDayAndStatus(User usr, Date d, char status) {
    Query q = em.createQuery("SELECT e FROM Event as e where " +
                             "e.idusr=:usr AND e.datestart=:d AND " + 
                             "e.status=:status", Event.class);            
    q.setParameter("usr", usr);
    q.setParameter("datestart", d, TemporalType.DATE);
    q.setParameter("status", status);
    return q.getResultList();
}

問題是我得到一個空列表,當我在查詢中省略date參數時,我得到了數據。

我認為日期存在問題,因為我的查詢方式類似於2013-03-20 00:00:00,而數據庫日期類似於2013-03-20 12:00:00。

將查詢修改為
從e中選擇e FROM事件,其中e.idusr =:usr和cast(e.datestart作為date)=:d AND e.status =:status它將跳過給定日期的時間,僅返回日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM