如何在没有时间的情况下使用createCriteria比较日期

时间:2016-07-08 16:46:22

标签: hibernate grails hibernate-criteria

我在数据库中有以下记录

2016-07-08 11:30:36

我正在编写以下标准来比较日期,但我没有得到任何结果,因为我认为它可能也是比较时间部分。

    Date reminderDate = new Date()
    println reminderDate //This prints: Fri Jul 08 12:45:56 EDT 2016
    def result = criteria.list {
        eq('expireDate', reminderDate)
    }

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

Date reminderDate = new Date().clearTime() 
println reminderDate // This prints: Fri Jul 08 00:00:00 EDT 2016

def result = criteria.list { 
  ge('expireDate', reminderDate) 
} 

答案 1 :(得分:0)

尝试sqlRestriction之类的:

sqlRestriction 'date(expire_date) = ?', [reminderDate.format('YYYY-MM-dd')]

请注意,您必须使用数据库列名称(我猜这是expire_date),而不是HQL或GORM属性名称(expireDate)。您可能需要修改数据库的日期格式。

答案 2 :(得分:0)

我就是这样做的:

task=  workspaces.find_by_name(name: w_name). 
        projects.where( name: p_name).first_or_create!.
        tasks.where(name: t_name).first_or_create!

sti_class.create(task_id: task.id)