Как обновить нулевое поле даты в SQLite - PullRequest
0 голосов
/ 09 октября 2018

В таблице SQLite у меня есть два поля END_DATE и START_DATE.При первом запуске END_DATE будет пустым и пустым.При втором запуске я хочу обновить предыдущую запись, где END_DATE равен нулю с текущим временем, и создать новую запись, но она возвращает ошибку:

     try {
                updateBuilder.where().eq("END_DATE", null);
                updateBuilder.updateColumnValue("END_DATE", currentTime);
                updateBuilder.update();

                   } catch (SQLException e) {
                e.printStackTrace();
            }

   appUsageLog.setStartDate(currentTime);
            appUsageLog.setPackageName(topPackageName);
            appUsageLog.setEndDate(null);
            appUsageLog.setUser(member);
            try {
                appUsageDao.create(appUsageLog);

            } catch (SQLException e) {
                e.printStackTrace();
            }

ошибка:

java.sql.SQLException: аргумент для EndDate равен нулю

1 Ответ

0 голосов
/ 09 октября 2018

Используйте функцию isNull для проверки NULL значений базы данных:

updateBuilder.where().isNull("END_DATE");
updateBuilder.updateColumnValue("END_DATE", currentTime);
updateBuilder.update();

В качестве документации для isNull состояний мы не можем использовать равенство = дляпроверьте значения NULL в SQLite (или вообще любой SQL):

Добавьте предложение IS NULL, чтобы столбец был пустым.'=' NULL не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...