Java 最接近现在的时间的Sqlite订单

Java 最接近现在的时间的Sqlite订单,java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,我的sqlite原始查询需要能够根据日期与现在的距离对日期进行排序。我的sqlite语句有什么问题 public Cursor GetFirstTime(){ Calendar c = Calendar.getInstance(); int seconds = c.get(Calendar.MILLISECOND); SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); Cursor nextTim

我的sqlite原始查询需要能够根据日期与现在的距离对日期进行排序。我的sqlite语句有什么问题

public Cursor GetFirstTime(){
    Calendar c = Calendar.getInstance();
    int seconds = c.get(Calendar.MILLISECOND);
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    Cursor nextTime = sqLiteDatabase.rawQuery("select  * from timemanager_table where " + seconds + " >= dateday ORDER BY dateday Limit 5",null);
    return  nextTime;
}

假设
dateday
是秒,那么您完全可以在SQL中完成这项工作(您不需要Java日历)

此查询表示查找以前的前5个元素

SELECT * 
FROM timemanager_table 
WHERE dateday <= strftime('%s', 'now') 
ORDER BY dateday DESC
LIMIT 5

这将添加一个附加列,其中过去为负值,现在为0,未来为正值

dateday
以毫秒为单位吗?为什么要将一个名为“seconds”的变量指定给毫秒?所以,如果表中的行过去是10分钟和5分钟,未来是3分钟和7分钟,那么“根据日期与现在的距离排序日期”应该对它们进行排序:3(未来)、5(过去)、7(未来)、10(过去)?如果不是,那么你只需要一个普通的排序,“接近现在”没有任何意义。这个问题还不清楚。你在处理过去、现在和未来的时刻吗?如果是,请回复Andreas的评论。
SELECT *, dateday - strftime('%s', 'now') AS time_diff
FROM timemanager_table 
ORDER BY time_diff DESC
LIMIT 5