【发布时间】:2018-04-04 17:39:13
【问题描述】:
我想获取所有数据(日期和时间),但这对我没有帮助,也不要显示任何错误
点击以下链接,但这对我没有帮助:
- android sqlite orderby datetime always fetches 1st row
- Order By datetime column SQLite
- Why is the ORDER BY not working in a Sqlite query
将记录插入SQLite 数据库:
private String getDateTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
Date date = new Date();
return dateFormat.format(date);
}
public long insertCompany(Company company){
//String sql = null;
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DatabaseHelper.KEY_COMPANY_NAME, company.getName());
values.put(DatabaseHelper.KEY_CREATED_AT, getDateTime());
values.put(DatabaseHelper.KEY_COMPANY_WEBSITE,company.getWebsite());
values.put(DatabaseHelper.KEY_COMPANY_EMAIL,company.getEmail());
values.put(DatabaseHelper.KEY_COMPANY_PHONE_HOME,company.getPhoneHome());
values.put(DatabaseHelper.KEY_COMPANY_PHONE_PRIMARY,company.getPhonePrimary());
values.put(DatabaseHelper.KEY_COMPANY_ADDRESS,company.getAddressLine1());
long company_id = db.insert(COMPANY, null, values);
return company_id;
}
下面的代码是我将在我的数据库中实现但它无法工作:
List<Company> companyList = new ArrayList<Company>();
String selectQuery = "SELECT * FROM " + COMPANY + " ORDER BY (" + KEY_CREATED_AT + ") ";
Log.e(TAG, selectQuery);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
完整代码:
public List<Company> getAllCompany(){
List<Company> companyList = new ArrayList<Company>();
String selectQuery = "SELECT * FROM " + COMPANY + " ORDER BY (" + KEY_CREATED_AT + ") ";
Log.e(TAG, selectQuery);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst()) {
do {
Company com = new Company();
com.setId(c.getInt(c.getColumnIndex(KEY_ID)));
com.setName(c.getString(c.getColumnIndex(KEY_COMPANY_NAME)));
com.setWebsite(c.getString(c.getColumnIndex(KEY_COMPANY_WEBSITE)));
com.setEmail(c.getString(c.getColumnIndex(KEY_COMPANY_EMAIL)));
com.setPhoneHome(c.getString(c.getColumnIndex(KEY_COMPANY_PHONE_HOME)));
com.setPhonePrimary(c.getString(c.getColumnIndex(KEY_COMPANY_PHONE_PRIMARY)));
com.setAddressLine1(c.getString(c.getColumnIndex(KEY_COMPANY_ADDRESS)));
com.setDate(c.getString(c.getColumnIndex(KEY_CREATED_AT)));
//com.setDate(c.getString(c.getColumnIndex(KEY_UPDATED_AT)));
companyList.add(com);
} while (c.moveToNext());
}
return companyList;
}
请参阅下图了解电池数据未按日期和时间显示:
帮帮我:)
提前致谢
【问题讨论】:
-
你想要最新的优先吗?
-
是的@NiranjPatel
-
按
fielddesc 订购 -
它不起作用,使用毫秒而不是日期字符串或使用日期时间数据类型。
-
您必须更改在数据库中存储值的格式,存储毫秒的日期或 yyyymmddhhMMss。