gpt4 book ai didi

date - 为什么 Sequelize findByPk 将日期列加载为字符串

转载 作者:行者123 更新时间:2023-12-03 22:30:40 24 4
gpt4 key购买 nike

我有一个字段类型为 Date | null 的模型。 MySQL 数据库列的类型为 date

@Column
my_date: Date | null
当我使用 findByPk 加载对象时,该字段是 string
console.log(typeof myObject.my_date) // 'string'
我做错了什么,还是 Sequelize 应该这样工作?
注意:如果我将数据库列类型更改为 datetime ,它将作为 Date 对象加载。

最佳答案

Sequelize v5.22.4
/lib/data-types.js 中, _sanitize 输出一个字符串。因此,该属性的正确数据类型似乎是 string ,而不是 date

/**
* A date only column (no timestamp)
*/
class DATEONLY extends ABSTRACT {
toSql() {
return 'DATE';
}
_stringify(date) {
return moment(date).format('YYYY-MM-DD');
}
_sanitize(value, options) {
if ((!options || options && !options.raw) && !!value) {
return moment(value).format('YYYY-MM-DD');
}
return value;
}
_isChanged(value, originalValue) {
if (originalValue && !!value && originalValue === value) {
return false;
}
// not changed when set to same empty value
if (!originalValue && !value && originalValue === value) {
return false;
}
return true;
}
}

关于date - 为什么 Sequelize findByPk 将日期列加载为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67310956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com