提问人:Garbit 提问时间:5/30/2018 更新时间:9/12/2021 访问量:1435
如何在 Sequelizejs 中存储 ISO 8601 日期时间
How to store ISO 8601 Datetime in Sequelizejs
问:
我正在尝试在 Sequelize 4.0 中存储 UTC ISO 8601 日期时间对象,但是我只能在我的模型中指定 DateType.Date。当我在插入数据时使用格式化的 ISO 8601 日期时间字符串时,我收到解析错误:
"Incorrect datetime value: '2018-05-14T14:29:21.338Z' for column 'columnName' at row 1"
我的模型如下所示(简化问题):
module.exports = (sequelize, DataTypes) => {
var deviceData = sequelize.define('deviceData', {
steps: DataTypes.INTEGER,
recordedOn: DataTypes.DATE,
batteryLevel: DataTypes.INTEGER,
}, {});
return deviceData;
};
数据库配置如下所示;
module.exports = {
development: {
database: 'DATABASENAME',
username: 'MYUSERNAME',
password: 'MYPASSWORD',
dialect: 'mysql',
host: 'HOSTNAME'
},
testing: {
dialect: 'sqlite',
storage: ':memory:',
logging: false
}
};
我声明我的 Sequelize 实例如下:
const fs = require('fs');
const path = require('path');
const basename = path.basename(__filename);
const Sequelize = require('sequelize');
let config = require('../config/db.js');
const db = {};
db.sequelize = new Sequelize(config.database, config.username, config.password, config);
db.Sequelize = Sequelize;
module.exports = db;
我无法决定是否应该在插入数据库之前将所有 ISO 8601 日期时间对象解析为 datetime 对象,或者 Sequelize 是否能够将 ISO 8601 日期时间对象与数据库中的日期时间对象一起解释。
答: 暂无答案
评论