在我的android sqlite数据库中,有一列包含数据格式(2013-12-12 18:47:31)的时间戳。现在,特定数据可能具有早于当前日期或晚于当前日期的时间戳。例如今天是2013年12月20日,数据库包含2013年11月1日,2013年11月6日,2013年12月12日,2014年1月1日等数据...现在我想获取比现在更早的数据,即2013年12月20日。如何做是什么?
答案 0 :(得分:3)
您可以使用以下查询根据时间戳
获取数据SELECT [COLUMN 1], [COLUMN 2]...., [COLUMN N] FROM [TABLE] WHERE TIMESTAMP_FIELD < strftime('%s','now');
否则你也可以像这样获取currentTimeStamp
SELECT [COLUMN 1], [COLUMN 2]...., [COLUMN N] FROM [TABLE] WHERE TIMESTAMP_FIELD <
CAST((((JulianDay('now', 'localtime') - 2440587.5)*86400.0) + 62135596800) * 10000000
AS BIGINT)
答案 1 :(得分:2)
select [Columns] from [database] where [column_date] < "currentDate";
要获取当前日期和时间,请查看此链接Get current time and date on Android
答案 2 :(得分:1)
yyyy-MM-dd HH:mm:ss
日期时间戳具有相同的词典和时间顺序。您可以在字符串上使用<
和>
等运算符。
答案 3 :(得分:0)
Time time = new Time();
time.setToNow();
或强>
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
答案 4 :(得分:0)
我遇到了使用时间戳来获取数据的问题,但是几周后我没有一个好的解决方案。
public static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_INCOME + " INTEGER,"
+ COLUMN_EXPENSE + " INTEGER,"
+ COLUMN_TIMESTAMP + " TEXT"
+ ")";
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
ContentValues values = new ContentValues();
values.put(DailyTransaction.COLUMN_INCOME, income);
values.put(DailyTransaction.COLUMN_EXPENSE, expense);
values.put(DailyTransaction.COLUMN_TIMESTAMP, getDateTime());
"SELECT * FROM "+ TABLE_NAME + " WHERE " + ClassName.COLUMN_TIMESTAMP + " <"+ "'"currentDate'";