按日期过滤记录时忽略时间部分

Disregard time part when filtering records by date

我客户的数据库很旧。例如,旧的 DATE 列仅包含日期值。但升级后,它现在可以支持 DateTime 值。我有一个名为 LAST_UPDATED_DATE 的专栏,其中的值可以从 2001-08-162016-04-28 12:00:12 不等。前者插入旧版本数据库,后者插入升级版本

我在 Grails 上执行搜索条件,其中它需要检索特定日期的行,例如,去年 4 月 25 日更新的行。问题是如何?我可以这样做:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date parsedDate = formatter.parse("2016-04-25");

ArrayList records = Table.createCriteria().list {
    ...
    eq("lastUpdatedDate", parsedDate)
    ...
}

但并非当天的所有条目都会 selected。只有 selected 的记录是时间为 00:00:00 的记录。我怎样才能 select 那个日期的所有记录而不考虑它们的时间?

搜索当天午夜与下一天午夜之间的时段:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date parsedDate = formatter.parse("2016-04-25");

ArrayList records = Table.createCriteria().list {
    ...
    ge("lastUpdatedDate", parsedDate)
    lt("lastUpdatedDate", parsedDate + 1)
    ...
}