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

发布于 2024-09-14 06:57:51 字数 470 浏览 22 评论 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 字段的正确方法是什么?

I have an sqlite database which currently holds an integer field called Year which currently only stores the year. In future versions I want to store a full date and time.

I updated my table to include a FullDate field using alter table.

> ALTER TABLE Files ADD COLUMN UploadDate DATETIME DEFAULT 0;

Next, I want to migrate all the existing year fields to the new field. So I'm looking for something like:

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

Unfortunately this doesn't seem to work as the result is empty. I also tried the date and strftime functions but they either result in incorrect data or empty data.

What's the proper way to update a DATETIME field with existing data in the same table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谜泪 2024-09-21 06:57:51

DATEDATETIME 函数没有格式参数。

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

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

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

这将执行完全相同的操作。日期不是按类型存储的,但可以根据日期和时间函数进行计算。

The DATE and DATETIME functions don't have a format parameter.

For more: http://sqlite.org/lang_datefunc.html

The main catch is that SQLite does not have any date or time types, so that you might as well populate your field with:

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

And that will do the exact same thing. Dates are not stored as typed, but can be evaluated as such against the date and time functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文