【发布时间】:2013-10-17 20:35:32
【问题描述】:
我有一个 SQLite3 数据库,其中包含 366 行,以及一年中每一天的日期。我需要确保年份是当前的,如果不是,那么我需要将年份更新为当前日历年。我想做的是如下所示:
UPDATE daily SET date = DATE('%Y', 'now');
或
UPDATE daily SET date = strftime('%Y', 'now');
但是这些查询只是将日期列设为 NULL,即使它们确实按我预期的那样工作,我怀疑它是否会保留已经存在的日期和月份。
在 MySQL 中,我可以执行UPDATE daily SET date = ADDDATE(date, INTERVAL 1 YEAR) 之类的操作——但首先,它不是一个有效的 SQLite 查询,其次,我需要更新到当前年份,而不是仅仅提高一年。
任何帮助将不胜感激。
【问题讨论】:
-
是否可以在数据库上运行 python/其他脚本?
-
不,不幸的是它不是,因为它是一个嵌入在移动应用程序中的数据库。我必须在应用启动时执行此逻辑,因此即使应用在某人的设备上休眠数年,日期也不会过时。
-
你能从应用程序中读取日期然后将它们写回数据库吗?或者创建一个自定义函数以从 SQL 调用? (stackoverflow.com/questions/2108870/…)。使用大 strftime 函数可能有一种不明显的方法,但似乎只使用非 sql 代码会更省力。
标签: sqlite