1

INTEGERの「作成された」列があり、これがsqliteの日付を挿入する方法です。

 ContentValues vals = new ContentValues();
 vals.put(Column._CREATED_DATE, "strftime('%s','now')");
 db.insert(Table.ARTICLE.name, null, vals);

信じられないことに、彼はstrftime('%s','now')文字列を INTEGER 列に挿入します!

一体何?

EDIT:insert into article (created) values (strftime("%s","now"))SQLiteブラウザで実行すると、適切な整数値が挿入されます...

4

1 に答える 1

3

代わりに、テーブルにデフォルト値を追加します。

CREATE TABLE article (
    _id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    _created_date INTEGER DEFAULT (strftime('%s', 'now'))
);

行を作成するときに列の値を設定しない場合、これにより unix エポックが _created_date に設定されます。タイムスタンプが必要な場合 (例: 2012-05-07 13:07:58)、次のように定義します。

_created_date INTEGER DEFAULT CURRENT_TIMESTAMP
于 2012-05-07T13:08:28.203 に答える