代码之家  ›  专栏  ›  技术社区  ›  Jensen

如何使用同一表中的现有数据更新日期时间字段

  •  0
  • Jensen  · 技术社区  · 15 年前

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

    我使用alter table更新了我的表以包含一个完整的日期字段。

    > ALTER TABLE Files ADD COLUMN UploadDate DATETIME DEFAULT 0;
    

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

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

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

    用同一个表中的现有数据更新日期时间字段的正确方法是什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   MPelletier    15 年前

    这个 DATE DATETIME 函数没有格式参数。

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

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

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

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