我目前正在使用 knex 为我的数据库 (sqlite3) 编写迁移。我正在制作“用户”表,我希望有两个时间戳字段,created_at以及updated_at. 我希望它们是 notNullable 并在将行插入表时默认添加。我可以使用类似的东西,table.timestamp("created_at).notNullable().defaultTo(knex.fn.now())但在 SQLiteStudio 中它显示为格式化的时间戳 YYYY-MM-DD HH:MM:SS 在 UTC 时区(所以不是我的时区)。所以我有两个问题:
SELECT语句中获取它时,它会作为 Unix 时间戳(整数)返回,并且在 SQLiteStudio 中仍然显示为格式化日期?这是我的迁移代码:
exports.up = function(knex, Promise) {
return Promise.all([
knex.schema.createTable('users', function(table) {
table.increments("_id").primary().notNullable();
table.text("login").unique().notNullable();
table.text("given_name").notNullable();
table.text("family_name").notNullable();
table.timestamp("created_at").notNullable().defaultTo(knex.fn.now());
table.timestamp("updated_at").notNullable().defaultTo(knex.fn.now());
table.boolean("is_active").notNullable().defaultTo(true);
}),
]);
};
Run Code Online (Sandbox Code Playgroud)