根据当天的时间戳从sqlite数据库中获取数据

时间:2013-12-20 11:37:00

标签: android sqlite

在我的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日。如何做是什么?

5 个答案:

答案 0 :(得分:3)

您可以使用以下查询根据时间戳

获取数据
SELECT [COLUMN 1], [COLUMN 2]...., [COLUMN N] FROM [TABLE] WHERE TIMESTAMP_FIELD < strftime('%s','now');

- Date And Time Functions

否则你也可以像这样获取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)

- Link for reference

答案 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)

我遇到了使用时间戳来获取数据的问题,但是几周后我没有一个好的解决方案。

  1. 将列时间戳设置为表中的文本
 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"
                    + ")";
  1. 使用新的Date()获取日期并转换为字符串
 private String getDateTime() {
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        Date date = new Date();
        return dateFormat.format(date);
    }
  1. 使用getDateTime()作为时间戳将表中的数据插入
ContentValues values = new ContentValues();

        values.put(DailyTransaction.COLUMN_INCOME, income);
        values.put(DailyTransaction.COLUMN_EXPENSE, expense);
        values.put(DailyTransaction.COLUMN_TIMESTAMP, getDateTime());
  1. 然后您的sqlite查询将如下所示:
"SELECT * FROM "+ TABLE_NAME + " WHERE " + ClassName.COLUMN_TIMESTAMP + " <"+ "'"currentDate'";