用 knex 新增 mysql 数据,如何生成 datetime 类型录入时间?

我用下面方法创建数据,字段post_date会报无效的值

CREATE TABLE `evidence` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_date` datetime DEFAULT NULL,
  `post_type` text,
  `post_author` text,
  `post_title` text,
  `post_excerpt` text,
  `post_content` longtext,
  `comment_status` bigint(20) DEFAULT '1',
  `comment_count` bigint(20) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

knex.js操作的mysql代码片段

knex('evidence').insert({
        post_date: moment().format('YYYY-MM-DD HH:MM:SS'),
        post_type: 'text',
        post_author: 'test_author',
        post_title: ctx.request.body.title,
        post_excerpt: ctx.request.body.excerpt,
        post_content: ctx.request.body.content,
        comment_status: 1,
        comment_count: 10
    })
阅读 5.3k
1 个回答
 `post_date` datetime 所以你的knex.schema的post_date也应该是dateTime类型
而你插入的时候moment().format('YYYY-MM-DD HH:MM:SS')是字符串类型,类型不匹配

参考http://blog.csdn.net/liuyueyi... dateTime类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题