0

我有一个 sqlite 数据库,该数据库当前包含一个名为 Year 的整数字段,该字段当前仅存储年份。在未来的版本中,我想存储完整的日期和时间。

我使用 alter table 更新了我的表以包含一个 FullDate 字段。

> ALTER TABLE Files ADD COLUMN UploadDate DATETIME DEFAULT 0;

接下来,我想将所有现有年份字段迁移到新字段。所以我正在寻找类似的东西:

> UPDATE Files SET UploadDate = (DATETIME('%Y-%m-%d', Year, 1, 1));

不幸的是,这似乎不起作用,因为结果是空的。我还尝试了 date 和 strftime 函数,但它们要么导致数据不正确,要么导致数据为空。

用同一张表中的现有数据更新 DATETIME 字段的正确方法是什么?

4

1 回答 1

2

DATEandDATETIME函数没有格式参数。

更多信息:http ://sqlite.org/lang_datefunc.html

主要问题是 SQLite 没有任何日期或时间类型,因此您不妨使用以下内容填充您的字段:

UPDATE Files SET UploadDate = Year || '-01-01';

这将做同样的事情。日期不按类型存储,但可以根据日期和时间函数进行评估。

于 2010-08-15T22:14:44.557 回答