In my android sqlite database there is a column that contains the timestamp in the format (2013-12-12 18:47:31) of the data. Now a particular data may have time stamp which is earlier than present day or later than present day. e.g. today its 20 December 2013, and database contains data of 1 November 2013, 6 November 2013, 12 December 2013, 1 January 2014 etc... Now I want to fetch data which are earlier than present day i.e. 20 December 2013. How to do that?
Asked
Active
Viewed 1,348 times
5 Answers
2
select [Columns] from [database] where [column_date] < "currentDate";
To get current date and time, check this link Get current time and date on Android
2
you can use the following query to fetch the data based on timestamp
SELECT [COLUMN 1], [COLUMN 2]...., [COLUMN N] FROM [TABLE] WHERE TIMESTAMP_FIELD < strftime('%s','now');
Else you can also fetch currentTimeStamp like this
SELECT [COLUMN 1], [COLUMN 2]...., [COLUMN N] FROM [TABLE] WHERE TIMESTAMP_FIELD <
CAST((((JulianDay('now', 'localtime') - 2440587.5)*86400.0) + 62135596800) * 10000000
AS BIGINT)

Community
- 1
- 1

SilentKiller
- 6,944
- 6
- 40
- 75
1
yyyy-MM-dd HH:mm:ss
datetime stamps have the same lexicographical and chronological order. You can use operators such as <
and >
on the strings.

laalto
- 150,114
- 66
- 286
- 303
0
Time time = new Time();
time.setToNow();
OR
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();

Ravindra Kushwaha
- 7,846
- 14
- 53
- 103

Ishan_Deb
- 11
- 1
- 3
0
I had this problem of fetching data using timestamps but to no avail after weeks i got a good solution.
- set column timestamp as text on your table
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"
+ ")";
- get the date using new Date() and convert to string
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
- Insert data in your table using the getDateTime() for the timestamp
ContentValues values = new ContentValues();
values.put(DailyTransaction.COLUMN_INCOME, income);
values.put(DailyTransaction.COLUMN_EXPENSE, expense);
values.put(DailyTransaction.COLUMN_TIMESTAMP, getDateTime());
- Then your sqlite query will look like this:
"SELECT * FROM "+ TABLE_NAME + " WHERE " + ClassName.COLUMN_TIMESTAMP + " <"+ "'"currentDate'";

Bellatez
- 1
- 2