Я создал приложение для Android для регистрации посетителей, которые в настоящее время посещают нашу компанию, позволяя им регистрироваться и выезжать. При регистрации я сохраняю информацию и GetCurrentMillis в базе данных SQLite. Я хотел бы добавить две функции, но не могу заставить их работать должным образом:
Когда посетители забывают оформить заказ, их информация остается в базе данных. Мне нужен запрос, который проверяет всех посетителей, у которых дата в отметке времени регистрации! = Сегодня.
Информация будет храниться только 14 дней, поэтому мне нужен запрос, который удаляет всех посетителей, у которых дата в отметке времени регистрации <14 дней назад.
Мне может потребоваться изменить GetTimeMillis, потому что мне не нужны миллисекунды. Какими будут SQLite-запросы для них обоих?
Добавлено: мои попытки выполнить оба запроса (спасибо @Cid за напоминание):
String query = "UPDATE " + TABLE_NAME;
query += " SET " + COL_5 + " = '" + outTime + "'";
query += " WHERE (" + COL_5 + " IS NULL";
query += " OR " + COL_5 + " = '')";
query += " AND date(" + COL_4 + ") < ' + date('now') + '";
db.execSQL(query);
А также:
String query = "DELETE FROM " + TABLE_NAME;
query += " WHERE " + COL_5 + " IS NOT NULL";
query += " AND date(" + COL_4 + ") <= date('now', '-14 day')";
db.execSQL(query);
@Cid Я добавил свои попытки
" AND date(" + COL_4 + ") < ' + date('now') + '"; Похоже, вы забыли двойные кавычки. Вы имели в виду: " AND date(" + COL_4 + ") < '" + date('now') + "'";? То же для второго запроса
Функция date ('now') является функцией SQLite, а не функцией Java, поэтому эта часть должна находиться внутри строки. Добавление кавычек приводит к ошибке даты ('сейчас') (слишком много символов в символьном литерале)
Тогда символов + может быть больше
Проверка «просроченных» посетителей в этом случае означает добавление даты столбца времени начала + 23,59,59 в столбец времени окончания.