我有一个包含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);
欢迎各位建议,请帮助我
答案 0 :(得分: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;