为什么strftime()将字符串插入整数列

时间:2012-05-07 10:48:57

标签: android sqlite

我有一个'created'列,它是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列!

到底是什么?

编辑:当我在SQLite浏览器中运行insert into article (created) values (strftime("%s","now"))时,会插入正确的整数值...

1 个答案:

答案 0 :(得分: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