0

我有一个格式为时间列的表格yyyy-MM-dd:HH:mm。我想获得最接近当前时间和日期的时间值。我能够获得最接近当前时间但不是日期的时间值。

这就是我正在做的

    SimpleDateFormat mSDFmSDF = new SimpleDateFormat("HH:mm");//yyyy-MM-dd:HH:mm not working
    Calendar calSet = Calendar.getInstance();
    TimeZone tz = TimeZone.getDefault();
    mSDF.setTimeZone(tz);
    String time = mSDF.format(calSet.getTime());
    Cursor selectedtime = mDB.rawQuery("SELECT " + ALARM_TIME + " FROM "
            + ALARM_TABLE + " WHERE " + ALARM_TIME + " >=  '" + time
            + "' ORDER BY " + ALARM_TIME + " LIMIT 1 ;", null); 

欢迎每一个建议,请帮助我

4

1 回答 1

1

为了对日期/时间执行算术运算,SQLite 提供了JULIANDAY将您的日期转换为FLOAT.

所以,

SELECT ABS(JULIANDAY(SUBSTR(alarm_time,1,5)||' '||SUBSTR(alarm_time,-5))-JULIANDAY('NOW')), * FROM alarm_table;

将返回alarm_time与当前时间的时差(以天为单位)。

但是,如果您只需要将来最近的时间,简单的比较就足够了:

SELECT * FROM alarm_table WHERE alarm_time>=STRFTIME('%Y-%m-%d:%H:%M','NOW')
ORDER BY alarm_time LIMIT 1;
于 2013-10-22T09:57:38.347 回答