Der Umgang mit Daten im Millisekundenbereich ist schwierig. Wenn Sie einen Datensatz mit einem Millisekundenwert als Datum einfügen, fügen Sie ihn mit dem Wert des aktuellen Moments ein. Sie müssen alle Datensätze durchsuchen, die sich im Zeitraum vom Beginn des Datums (Uhrzeit 00:00) bis zum Ende des Datums (Uhrzeit 23:59) befinden. Werfen Sie einen Blick auf dieses Beispiel:
/*Suppose your DateTime is Joda's DateTime class*/
import java.util.*;
import org.joda.time.*;
// Two functions to help retrive start and end of date
public static DateTime getStart(DateTime date) {
return new DateTime(date.year().get(), date.monthOfYear().get(), date.dayOfMonth().get(), 0, 0);
}
public static DateTime getEnd(DateTime date) {
return new DateTime(date.year().get(), date.monthOfYear().get(), date.dayOfMonth().get(), 23, 59);
}
// Code to make clause and parameters for select-statement
DateTime now = DateTime.now();
DateTime start = getStart(now);
DateTime end = getEnd(now);
String yourClause = "KEY_DRIVER_STAT_DAT >= ? AND KEY_DRIVER_STAT_DAT <= ?";
String[] params = new String[] {String.valueOf(start.getMillis()), String.valueOf(end.getMillis())};
System.out.println("clause: " + yourClause);
System.out.println("parameters: " + Arrays.toString(params));
Warum verwenden Sie nicht sqlite Zeitstempel oder Datumsfunktion, um das gleiche zu erreichen? – Geek