2016-04-27 11 views
1

Die Datenbank meines Kunden ist ziemlich alt. Zum Beispiel alte DATE Spalten enthalten nur Datumswerte. Aber nachdem es aktualisiert wurde, kann es nun DateTime-Werte unterstützen. Ich habe diese Spalte LAST_UPDATED_DATE genannt, wobei die Werte von 2001-08-16 bis 2016-04-28 12:00:12 variieren können. Das erstere wird in die ältere Version der Datenbank eingefügt, während das spätere die aktualisierte Version ist.Zeitteil beim Filtern von Datensätzen nach Datum ignorieren

Ich führe Suchkriterien auf Grails, wo es Zeilen an einem bestimmten Datum abrufen muss, zum Beispiel diejenigen, die letzten 25. April aktualisiert wurden. Die Frage ist, wie? Ich könnte etwas tun wie:

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

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

Aber nicht alle Einträge für diesen Tag werden ausgewählt. Die einzigen Datensätze werden ausgewählt, die die Zeit 00:00:00 sind. Wie kann ich alle Datensätze an diesem Datum unabhängig von ihrer Zeit auswählen?

Antwort

2

Suche nach Zeitraum zwischen Mitternacht dieses Tages und nächsten:

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) 
    ... 
} 
Verwandte Themen