2

c++/QT アプリケーションから SQLite データベースへの挿入を実行しようとしています。データを挿入したいテーブルの列の 1 つは日時 (yyyy-mm-dd hh:mm:ss) です。

私はこのコードを使用しようとしました:

...
query.prepare("INSERT INTO table (table_date_time, ...) "
        " VALUES (?, ...);");
query.bindValue(0, "datetime('2004-12-11 13:00:00', '+1 day')");
...

ただし、値 2004-12-12 13:00:00 の代わりにテキスト「datetime('2004-12-11 13:00:00', '+1 day')」が挿入されます。私が試したら

...
query.prepare("INSERT INTO table (table_date_time, ...) "
        " VALUES (datetime(?), ...);");
query.bindValue(0, "2004-12-11 13:00:00, +1 day");
...

また

...
query.prepare("INSERT INTO table (table_date_time, ...) "
        " VALUES (datetime(?), ...);");
query.bindValue(0, "'2004-12-11 13:00:00',' +1 day'");
...

日時フィールドは入力されません。パラメータに沿って日時関数を使用する正しい方法は何ですか?

前もって感謝します。

4

2 に答える 2

2

バインドされた値は 1 つのパラメーターのみを置き換えます。関数への 2 つのパラメーターdatetimeは別々に送信する必要があります。

query.prepare("INSERT INTO table (table_date_time, ...) "
        " VALUES (datetime(?, ?), ...)");
query.bindValue(0, "2004-12-11 13:00:00");
query.bindValue(1, "+1 day");
于 2012-08-25T21:48:23.723 に答える