Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在SQLite中更新空日期字段_Android_Sqlite - Fatal编程技术网

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

Android 如何在SQLite中更新空日期字段,android,sqlite,Android,Sqlite,在SQLite表中,我有两个字段END_DATE和START_DATE。首次运行结束时,日期为空且为空。在第二次运行时,我想用当前时间更新END_DATE为null的上一条记录,并创建新记录,但返回错误: try { updateBuilder.where().eq("END_DATE", null); updateBuilder.updateColumnValue("END_DATE", currentTime);

在SQLite表中,我有两个字段END_DATE和START_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”的参数为null

使用该功能检查
NULL
数据库值:

updateBuilder.where().isNull("END_DATE");
updateBuilder.updateColumnValue("END_DATE", currentTime);
updateBuilder.update();
正如
isNull
的文档所述,我们不能使用equality
=
来检查SQLite中的
NULL
值(或者任何类型的SQL):

添加一个'IS NULL'子句,使列必须为NULL。'='NULL不起作用


您能指定您得到的错误吗?请提供更多信息,以便提供一个好的答案。
updateBuilder
的类别是什么?您需要检查
NULL
,相等可能不起作用(至少它不会直接在SQLite上语义上起作用)。@TimBiegeleisen I'v使用或通常使用orms提供isNull函数。奥姆利特可能也会这样做。类似于where().isNull(“结束日期”)