sequelize查詢數據的日期格式化

首先肯定時區sql

const sequelize = new Sequelize(config.database, config.username, config.password, {
  host: config.host,
  dialect: 'mssql',
  dialectOptions: {
    instanceName: 'SQLEXPRESS'
  },
  // define: {
  //   schema: "core"
  // },
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  },
  timezone: '+08:00' //東八時區
});

其次引入日期處理類庫 Moment.js數據庫

npm install moment --save

或者直接訪問http://momentjs.cn/,查看你須要的安裝方式npm

再次定義引用ui

var moment = require('moment');
const Device = sequelize.define('DeviceDetail',
  {
    DeviceNo: {
      type: Sequelize.INTEGER
    },

    ServiceTime: {
      type: Sequelize.DATE,
      get() {
        return moment(this.getDataValue('ServiceTime')).format('YYYY-MM-DD HH:mm:ss');
      }
    }
  }, {
    tableName: 'DeviceDetail',
    timestamps: false,
    freezeTableName: true
  });

輸出的格式即YYYY-MM-DD HH:mm:ssthis

出現問題:查詢返回的時間會比數據庫裏存儲的時間多八個小時,由於數據庫的時間使用entityframework保存的,而不是用sequelize保存的,因此這樣修改一下,就能夠保證查詢返回本地的時間和數據庫時間一致了spa

moment(this.getDataValue('ServiceTime')).utcOffset(0).format('YYYY-MM-DD HH:mm:ss')
相關文章
相關標籤/搜索