【问题标题】:Sequelize - Change Date column to without millisecondsSequelize - 将日期列更改为无毫秒
【发布时间】:2025-11-26 08:00:02
【问题描述】:

假设我有一个名为createdAt 的列,我在一个模型上创建它,现在它在 Postgres 数据库中显示2018-06-08 20:25:46.184-05 (Y-m-d H:i:s.u)。但我想将其截断为2018-06-08 20:25:46 (Y-m-d H:i:s)。我这样做是为了让Laravel 可以很好地配合Sequelized database

当前输入:2018-06-08 20:25:46.184-05 所需输出:2018-06-08 20:25:46

我正在查看文档 (http://docs.sequelizejs.com/variable/index.html),但我看不到可以将我的 createdAt 列转到最新的位置(没有时区)

这是我目前对20180618004714-remove-timezone-from-timestamp.js 所做的:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface
    .changeColumn('Users', 'createdAt', {
      type: Sequelize.DATE(),
      allowNull: false
    });
  },

  down: (queryInterface, Sequelize) => {
    //
  }
};

【问题讨论】:

  • 您能否清楚地提及您的输入和预期的输出(我认为这是预期的输出2018-06-08 20:25:46)?
  • 完成。我忘了添加毫秒@VicJordan

标签: javascript node.js sequelize.js


【解决方案1】:

有很多方法可以实现这一点,但将日期/时间戳转换为所需格式的一种最简单方法是通过momentjs

下面是它的工作示例:

var input = moment("2018-06-08 20:25:46.184-05").format("YYYY-MM-DD HH:mm:ss");
console.log(input)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>

【讨论】:

  • 这会改变数据而不是数据类型列。
最近更新 更多