如何在sqlite中用当前日期时间更新现有表的日期时间列



我有一个现有的sqlite数据库,其中有一个表,如下所示:

+------+----------+--------------------+----------------+
|LogID |  UsedOn  |     UserID         | Other fields() |
+------+----------+--------------------+----------------+
|  1   |          |    soemid03        |  SomeDataHere  |
+------+----------+--------------------+----------------+
Etc....

UsedOn字段当前为空,因为当我制作表时,我不小心忘记将字段类型设置为时间戳类型,所以应用程序只是插入其他列,并将此列留空。

因为我想在以后的某个时候使用时间戳进行比较,所以我想用当前时间戳更新表中所有行的这一列,我想我可以使用sqlite中的datetime((来实现这一点。一些日期和时间将在几天后过期并不重要,但字段不能为空,否则我的比较代码将不起作用。

我尝试使用:

UPDATE tablename SET UsedOn=datetime()

这被接受为一个有效的查询,但它似乎什么都没做,这一列仍然是空的。

也许我在某种程度上做错了?

我只能通过手动查询或使用"SQLite Administrator"应用程序(来自http://sqliteadmin.orbmu2k.de/)。我不能使用其他任何东西,因为这是可用的,并且我不允许安装任何其他数据库管理工具。当我试图编辑表中的任何一行以手动添加日期时间时,它不会被接受,但我只是认为这是因为应用程序试图插入我键入的字符串(即使格式正确(,而它不是字符串字段类型。

我在SQLite Administrator中尝试了您的代码,但它不起作用,而它应该起作用
有效的是:

UPDATE tablename 
SET UsedOn = CURRENT_TIMESTAMP

这并不意味着您的代码是错误的
如果您使用任何其他工具,如SQLite的DB Browser,这两种解决方案都可以工作。

最新更新