按日期过滤记录时忽略时间部分
Disregard time part when filtering records by 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)
...
}
但并非当天的所有条目都会 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)
...
}
我客户的数据库很旧。例如,旧的 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)
...
}
但并非当天的所有条目都会 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)
...
}