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

文字列から始めるときは、文字列関数を使用してこの種の操作を行う方が簡単な場合があることに注意してください。ただし、日付関数を使用すると、適切にフォーマットされた日付で開始されていることが検証されます。

編集 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 に答える