hql当前日期

jm81lzqq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(498)

我正在尝试使用 currentdate() 函数比较两个日期。

List<Rel_Utenti_Commesse> commesseAttive = new ArrayList<Rel_Utenti_Commesse>();        

commesseAttive = session.createQuery("from Rel_Utenti_Commesse where utenti = '" + utenteSessione + "' and data_fine_commessa > current_date() or data_fine_commessa is null").list();

for(int i = 0; i < commesseAttive.size(); i++)                   
    System.out.println(commesseAttive.get(i).getCommessa().getNome_commessa());

return commesseAttive;

但是,尽管我在数据库(mysql)中有一个示例,它的数据格式是2019-02-01,但他忽略了它。
为什么?

hmmo2u0o

hmmo2u0o1#

您错过了或零件周围的支架:

commesseAttive = session.createQuery("from Rel_Utenti_Commesse where utenti = '" + utenteSessione + "' and (data_fine_commessa > current_date() or data_fine_commessa is null)").list();

这就是为什么第一个是 AND 评估并比 OR @timbiegeleisen建议,使用参数化查询:

Query query = session.createQuery("from Rel_Utenti_Commesse where utenti = :utenteSessione and (data_fine_commessa > current_date() or data_fine_commessa is null)")
query.setParameter("utenteSessione", utenteSessione)
List result = query.list()

相关问题