如何在SQLite中更新空日期字段

时间:2018-10-09 15:04:43

标签: android sqlite

在SQLite表中,我有两个字段END_DATE和START_DATE。首次运行时END_DATE为空且为空。在第二次运行时,我想用当前时间更新END_DATE为null的先前记录,并创建新记录,但是它返回错误:

     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 :(得分:1)

使用isNull函数检查NULL数据库值:

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

作为isNull状态的文档,我们不能使用相等性=来检查SQLite(或实际上是任何形式的SQL)中的NULL值:

  

添加一个“ IS NULL”子句,因此该列必须为空。 '='NULL不起作用。