如何使用同一个表中的现有数据更新DATETIME字段

时间:2010-08-15 20:25:08

标签: datetime sqlite strftime

我有一个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字段的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

DATEDATETIME函数没有格式参数。

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

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

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

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