我正在尝试使用以下方法仅更新 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
子句到底需要什么,因此请确保在运行此子句之前选择正确的记录。