小编ard*_*von的帖子

knex.js 迁移中的时间戳字段

我目前正在使用 knex 为我的数据库 (sqlite3) 编写迁移。我正在制作“用户”表,我希望有两个时间戳字段,created_at以及updated_at. 我希望它们是 notNullable 并在将行插入表时默认添加。我可以使用类似的东西,table.timestamp("created_at).notNullable().defaultTo(knex.fn.now())但在 SQLiteStudio 中它显示为格式化的时间戳 YYYY-MM-DD HH:MM:SS 在 UTC 时区(所以不是我的时区)。所以我有两个问题:

  1. 如何将此日期设置为我的时区?
  2. 是否可以以这种方式在 sqlite 中设置日期时间字段,当我从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)

javascript sqlite datetime node.js knex.js

6
推荐指数
1
解决办法
4557
查看次数

标签 统计

datetime ×1

javascript ×1

knex.js ×1

node.js ×1

sqlite ×1