【发布时间】:2021-12-21 18:29:09
【问题描述】:
我正在使用 Sequelize 将对象映射到我已经存在的数据库中,在这个数据库中他们没有使用自动生成的时间戳,他们做了自己的日期时间工作,数据库存储日期的当前方式是在 YYYY-MM-DD HH:MM:SS.MS 但是使用续集,我正在返回一个看起来像 YYYY-MM-DD HH:MM:SS.MS +00:00 的日期,我相信这是让我绊倒的原因。当我收到错误Conversion failed when converting date and/or time from character string. 时,我什至尝试访问Date() 对象并构建我自己的日期字符串,但我得到了同样的错误。即使它遵循正确的格式。
对于我的模型,我在 CreateDateTime 有这个(这是数据库中字段的名称。
CreateDateTime: {
type: DataTypes.DATE,
defaultValue: `${date.getFullYear()}-${date.getMonth()}-${date.getDay()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}.${date.getMilliseconds()}`,
},
UpdateDateTime: {
type: DataTypes.DATE,
},
我也将 sequelize 提供的时间戳重命名为上面的适当名称。除了可能使用 sequelize 提供的时间戳并删除现有的时间戳之外,我不确定如何解决这个问题。虽然 id 宁愿不这样做。即使最终将此数据库移至自动生成时间戳的更好架构。
有没有解决这个错误的不同方法?无论我似乎做什么,sql插入查询似乎总是将+00:00添加到最后,这是使用DataTypeDATE的某种默认值吗?我应该使用不同的数据类型吗?
【问题讨论】:
标签: mysql date datetime sequelize.js