Java 比较sqlite中存储为毫秒的日期

Java 比较sqlite中存储为毫秒的日期,java,android,sqlite,jodatime,Java,Android,Sqlite,Jodatime,我在SQLite中有一个表,其日期列定义为Numerictype KEY_DRIVER_STAT_DAT + " NUBMERIC" 现在,我将在KEY\u DRIVER\u STAT\u DAT列中插入数据,如下所示 values.put(KEY_DRIVER_STAT_DAT, DateTime.now().getMillis()); 如果KEY\u DRIVER\u STAT\u DAT介于 当前日期?按毫秒值处理日期很棘手。当您插入以毫秒值作为日期的记录时,您将以当前时刻的值插入该

我在SQLite中有一个表,其日期列定义为
Numeric
type

KEY_DRIVER_STAT_DAT + " NUBMERIC" 
现在,我将在
KEY\u DRIVER\u STAT\u DAT
列中插入数据,如下所示

values.put(KEY_DRIVER_STAT_DAT, DateTime.now().getMillis());
如果
KEY\u DRIVER\u STAT\u DAT
介于
当前日期

按毫秒值处理日期很棘手。当您插入以毫秒值作为日期的记录时,您将以当前时刻的值插入该记录。您需要搜索从日期开始(时间为00:00)到日期结束(时间为23:59)的时间段内的所有记录。看看这个例子:

/*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));
/*假设您的DateTime是Joda的DateTime类*/
导入java.util.*;
导入org.joda.time.*;
//用于帮助检索开始日期和结束日期的两个函数
公共静态日期时间getStart(日期时间日期){
返回新的日期时间(date.year().get(),date.monthOfYear().get(),date.dayOfMonth().get(),0,0);
}
公共静态日期时间getEnd(日期时间日期){
返回新的日期时间(date.year().get(),date.monthOfYear().get(),date.dayOfMonth().get(),23,59);
}
//为select语句生成子句和参数的代码
DateTime now=DateTime.now();
DateTime start=getStart(现在);
DateTime end=getEnd(现在);

String yourClause=“KEY\u DRIVER\u STAT\u DAT>=”和KEY\u DRIVER\u STAT\u DAT为什么不使用sqlite时间戳或日期函数来实现相同的功能?