仅在(mysql)表中查询商店日期部分

时间:2014-12-19 15:55:39

标签: mysql node.js sequelize.js

我的应用程序想要只在其中一个表中存储日期部分。在Sequelize中,只能使用一个data typeSequelize.DATE。在MySQL表上,它创建DATETIME列。

如何让数据库表中的列只存储日期,而不是时间。部分? MySQL有单独的DATEDATETIME数据类型,但在Sequelize中找不到告诉它的方法。

或者我们可以在使用Date对象运行查询时忽略时间部分吗? (我知道我们可以将getters and setters用于属性。不知道在运行具有日期字段条件的查询时它是否有效。)

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

注意事项...... Sequelize v3中的DATEONLY类型无法正常工作。它返回带有时区的日期时间,因此如果您正在进行日期比较,除非您的服务器时区GMT,否则它们将无法按预期工作。就我而言,我正在跨越时区工作假期,所以这对我来说很头疼。它们在主分支上有一个fix as of 2016-11-01,但它还没有进入v3并且还没有v4。要解决此问题,您可以在我在同一链接上找到的模型定义中执行此操作:

regDate: {
  type: DataTypes.DATEONLY,
  get: function() {
    return moment.utc(this.getDataValue('regDate')).format('YYYY-MM-DD');
  }
}