我正在尝试使用以下方法仅更新我的 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
请记住,有时当您从字符串开始时,使用字符串函数进行此类操作会更容易。但是,使用 date 函数将验证您是否从格式良好的日期开始。
如果您在弄清楚UPDATE
语法方面也有困难,请将它们放在一起,您会得到:
UPDATE recur SET start_date = date(d, 'start of month', '+4 days')
WHERE d = date('2012-12-08');
我不确定该WHERE
子句到底需要什么,因此请确保在运行之前选择正确的记录。