Sqlite 在日期时间更新一天



我正在尝试使用以下方法仅更新 sqlite 数据库上日期时间字段上的日期组件:

UPDATE recur SET start_date = date('%d', '05')

我已经阅读了文档,但似乎不知道如何做到这一点,有人可以帮忙吗?

在线文档中有很好的例子。您没有正确调用date函数。你需要这样的东西:

select date('now', 'start of month', '+4 days');

我不确定您需要从哪个日期开始,所以我使用了 'now' ,但您可以传入日期字段(例如,从您的数据库中)或有效的日期字符串(例如"2012-12-05",至少在我的系统上)。

编辑

例如

select date('2012-12-08', 'start of month', '+4 days');

将返回:

2012-12-05

请记住,有时当您从字符串开始时,使用字符串函数来执行这种类型的操作会更容易。但是,使用日期函数将验证您是从格式正确的日期开始的。

编辑 2

如果您在弄清楚UPDATE语法时也遇到困难,请将它们放在一起,您会得到:

UPDATE recur SET start_date = date(d, 'start of month', '+4 days')
WHERE d = date('2012-12-08');

我不确定您对WHERE子句到底需要什么,因此请确保在运行此子句之前选择正确的记录。

最新更新