2

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

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

我已经阅读了文档,但似乎无法弄清楚如何做到这一点,有人可以帮忙吗?

4

1 回答 1

3

在线文档中有很好的示例。您没有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 函数将验证您是否从格式良好的日期开始。

编辑 2

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

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

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

于 2012-12-08T17:39:33.503 回答