我客户的数据库已经很老了。例如,旧的DATE
列仅包含Date值。但在升级之后,它现在可以支持DateTime值。我有一个名为LAST_UPDATED_DATE
的专栏,其值可以从2001-08-16
到2016-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)
...
}
但并非所有当天的参赛作品都会被选中。将选择的唯一记录是时间为00:00:00
的记录。如何在该日期选择所有记录,无论他们的时间如何?
答案 0 :(得分:2)
搜索当天午夜和下一个午夜之间的时间段:
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)
...
}