【问题标题】:How to sort row data from Android sqlite database for a particular year in date field如何在日期字段中对特定年份的 Android sqlite 数据库中的行数据进行排序
【发布时间】:2020-01-09 10:36:35
【问题描述】:

我的 android sqlite 数据库上有下表。

我提交的日期是 TEXT;

ID   Name   Date 
1    ABY    2014-12-01
2    RUBY   2015-01-10
3    AMY    2015-01-15
4    ROBEN  2014-10-25

我需要像mysql一样对结果进行排序

select * from Table where YEAR(DATE)='2015';

如何在 Andorid sqlite 数据库中得到上述结果?

【问题讨论】:

  • 您的日期是否在 DATETIME 数据类型中?
  • 排序与where无关。 Where 用于过滤器。而 Order By 用于排序。现在你需要什么?排序或过滤
  • 我正在尝试过滤结果,请您评论android查询方法或rawquery以获得结果。
  • 好吧。 AFAIK sqlite 没有日期作为数据类型。所以试试下面克里斯的答案。它可能会起作用

标签: android android-sqlite


【解决方案1】:

我想你想使用 LIKE 操作数

SELECT * FROM table WHERE Date LIKE '2015%'

http://www.tutorialspoint.com/sqlite/sqlite_like_clause.htm

编辑查询:

String selectQuery = "SELECT id, name FROM table WHERE date like \'" + "2015" + "\'";
Cursor c = db.rawQuery(selectQuery, new String[] { fileNameOfDb });
if (c.moveToFirst()) {
    name = c.getString(c.getColumnIndex("name"));
}
c.close();

【讨论】:

  • 你能告诉我如何在andorid中通过查询来执行上述语句,比如...db.query(true, DATABASE_TABLE, new String[] {KEY_ID, ,KEY_NAME},((" %Y",KEY_DATE) + "=" + "2015"), null, null, null, null, null);
  • String selectQuery = "SELECT id, name FROM table WHERE date like \'" + "2015" + "\'";光标 c = db.rawQuery(selectQuery, new String[] { fileNameOfDb }); if (c.moveToFirst()) { name = c.getString(c.getColumnIndex("name")); } c.close();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
相关资源
最近更新 更多