2016-04-27 73 views
1

我的客戶的數據庫已過時。例如舊的DATE列只包含日期值。但升級後,它現在可以支持日期時間值。我有這個名爲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) 
    ... 
} 

但是並不是所有的那天都會被選中。唯一的記錄是那些時間爲00:00:00的記錄。我怎樣才能選擇當天的所有記錄而不管他們的時間?

回答

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) 
    ... 
} 
相關問題