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 列!

有没有搞错?

编辑:当我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 回答