Как получить завтрашнюю дату в виде строки и формат даты в Android для использования в запросе sqlite? - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь удалить некоторые записи в таблице s, где date - это сегодняшняя дата, а завтрашняя дата

public void deleteAll()
{
    // SQLiteDatabase db = this.getWritableDatabase();
    // db.delete(TABLE_NAME,null,null);
    SQLiteDatabase db = this.getWritableDatabase();

    // db.execSQL("delete  from "+ TABLE_NAME);
    // db.execSQL("TRUNCATE table" + TABLE_NAME);
    Date c = Calendar.getInstance().getTime(); System.out.println("Current time => " + c);
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    String current_Date = df.format(c);

    Log.e("Current_Date=", current_Date);

    db.execSQL("DELETE FROM SchedledMeetings WHERE Meeting_Date = '''+current_Date+''' ");
    db.close();
}

но хотел бы получить их в формате строки и даты, используя запрос Sqlite.

1 Ответ

0 голосов
/ 10 ноября 2018

Сначала я должен сказать, что неправильно хранить даты в SQLite в формате "dd/MM/yyyy", потому что это не сопоставимый формат, поэтому его нелегко использовать для выбора, когда вы хотите получить строки между датами. Также функции даты SQLite не распознают этот формат, поэтому вам придется каждый раз конвертировать его.
Лучше использовать этот формат: "yyyy-MM-dd".

Используйте этот код:

Calendar calendar = Calendar.getInstance();

Date c = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");

String current_Date = df.format(c);

calendar.add(Calendar.DAY_OF_YEAR, 1);
c = calendar.getTime();
String tomorrow_Date = df.format(c);

db.execSQL("DELETE FROM SchedledMeetings WHERE (Meeting_Date='" + current_Date + "') OR (Meeting_Date='" + tomorrow_Date + "')");
db.close();

Обратите внимание, что ваш оператор DELETE должен выглядеть следующим образом:

db.execSQL("DELETE FROM SchedledMeetings WHERE (Meeting_Date='" + current_Date + "') OR (Meeting_Date='" + tomorrow_Date + "')");

таким образом вы передаете значения current_Date и tomorrow_Date, а не строки "current_Date" и "tomorrow_Date".
Это удалит все строки, содержащие текущую дату и завтрашнюю дату.

...