SQLite3/Python:updatequery通过获取同一表中两个字段的差异来填充字段

SQLite3/Python:updatequery通过获取同一表中两个字段的差异来填充字段,sqlite,Sqlite,我的桌子:tblTest: RunID,StartTime, EndTime, Period 1,2013-03-30 18:08:14-04,2013-04-01 10:57:22-04 2,2013-04-03 12:13:10-04,2013-04-03 18:05:34-04 3,2013-04-04 06:02:30-04,2013-04-05 10:42:00-04 4,2013-04-05 10:43:00-04,2013-04-06 13:23:06-04 我正在尝试更新表以计

我的桌子:tblTest:

RunID,StartTime, EndTime, Period
1,2013-03-30 18:08:14-04,2013-04-01 10:57:22-04
2,2013-04-03 12:13:10-04,2013-04-03 18:05:34-04
3,2013-04-04 06:02:30-04,2013-04-05 10:42:00-04
4,2013-04-05 10:43:00-04,2013-04-06 13:23:06-04
我正在尝试更新表以计算列周期。 我使用的查询是:

UPDATE tblTest SET Period = (SELECT strftime('%s',substr(endtime,1,19)) -
                              strftime('%s',substr(starttime,1,19)) From tblTest)
但令我惊讶的是,它从第一行开始用相同的值更新所有时段。 我做错了什么?

像SELECT这样的子查询。。。不带WHERE条件的FROM tblTest返回表的所有记录。 在集合表达式中只需要一个值的上下文中,只使用第一个这样的记录

您可以直接访问要更新的表的列:

更新tblTest 设置时段=strftime“%s”,substrEndTime,1,19- strftime“%s”,substrStartTime,1,19