Jun*_*aid 5 mysql node.js sequelize.js
我的应用程序只想将日期部分存储在表之一中。在 Sequelize 中,只能使用一种数据类型, 。Sequelize.DATE它在 MySQL 表上创建DATETIME列。
如何在数据库表中有一列仅存储日期而不存储时间。部分?MySQL 有单独的DATE和DATETIME数据类型,但无法在 Sequelize 中找到一种方法来说明这一点。
或者我们可以在使用 Date 对象运行查询时忽略时间部分吗?(我知道我们可以使用具有属性的getter 和 setter。不知道在运行具有日期字段条件的查询时它是否有效。)
截至目前,sequelize ^3.7.1它确实支持某种DATEONLY数据类型。
请参阅http://docs.sequelizejs.com/en/latest/api/datatypes/和https://github.com/sequelize/sequelize/blob/f678009d7514b81a6f87e12b86360e9a597e3ca8/lib/data-types.js#L357
用于实施。
值得注意的是... Sequelize v3 中的 DATEONLY 类型未按预期工作。它返回带有时区的日期时间,因此如果您正在进行日期比较,除非您的服务器时区为 GMT,否则它们将无法按您的预期工作。就我而言,我正在跨时区处理假期,所以这对我来说是一个头痛的问题。截至 2016 年 11 月 1 日,他们确实在 master 分支上进行了修复,但尚未进入 v3,而且还没有 v4。要暂时解决此问题,您可以在模型定义中执行此操作,我在同一链接中找到了该定义:
regDate: {
type: DataTypes.DATEONLY,
get: function() {
return moment.utc(this.getDataValue('regDate')).format('YYYY-MM-DD');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10776 次 |
| 最近记录: |