Как получить дату из sqlite используется на Android-приложение

-4
    tv=(TextView)findViewById(R.id.textView1);
    SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase("/sdcard/assets.db", null);
    Cursor c=sqLiteDatabase.rawQuery("select datetime('now')", null);       
    if(c.moveToFirst()){
            tv.setText(c.getString(0));
    }
    tv.setText("1234");
    c.close();
    sqLiteDatabase.close();

Я написал этот код для работы с базой данных SQLite чтобы получить текущую дату и показать дату в текстовом элементе. Когда я запускаю код, он не показывает ошибки, но конечный результат показал, что состояние sql select datetime('now') не возвращает текущую дату. TextView показал "1234", но не дату.

пожалуйста, скажите мне, что не так с кодом, или если эти методы являются неправильным методом. ps Я знаю, как получить дату с помощью java-календаря, на этот вопрос задается вопрос, могу ли я напрямую получить дату, запросив базу данных SQLite.

Спасибо за помощь.

Теги:
string
date

4 ответа

0

Для работы с датой попробуйте следующее

Дата, поданная в таблице SQLite, будет TEXT, а данные даты должны храниться как формат "2012-12-31 00:12:00", что сравнительная доза не дает вам проблем, и если мы считаем, что поля - date_from и date_to, и мы сохраняем текущую дату на to_date, тогда мы должны получить текущую дату ниже и

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String to_date = sdf.format(new Date());

и SQL-запрос должен быть

crs = db.rawQuery(
  "SELECT _id, date_from, date_to, done_or_not, list_name " +
  "FROM list_tbl " +
  "WHERE " +
  "date_from <= Datetime('"+to_date+"') AND date_to >= Datetime('"+to_date+"')", null);
0

Это шутка? После установки даты в текстовом режиме вы переписываете текст 1234. Нормально, чтобы не видеть дату.

  • 0
    Боже мой!! мне очень жаль задавать глупые вопросы это займет у меня пол ночи ... спасибо
0

Измените свой код как:

if(c.getCount() >0)

  c.moveToFirst();

  tv.setText(c.getString(0));

 }
 else{
     tv.setText("1234"); 
  }
    c.close();
    sqLiteDatabase.close();

поместите последний tv.setText внутри else.

  • 0
    спасибо за помощь, спасибо
  • 0
    @user1936451 user1936451: мы всегда чему-то учимся на каждой ошибке
0

У вас нет выражения else, если это ваша проблема.

попробуй это:

    tv=(TextView)findViewById(R.id.textView1);
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = null;
    try{ 
        cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list or get object
        if (cursor.moveToFirst()) {
            do {
                tv.setText(c.getString(0));
            } while (cursor.moveToNext());
        }
        else{
                tv.setText("1234");
        }
    }
    catch (Exception e) {

    }
    finally{
        if(cursor != null)
            cursor.close();
        if(!db.equals(null) || db != null)
            db.close();
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню