【发布时间】:2020-08-20 06:15:31
【问题描述】:
如何比较两个日期之间的相等性? 似乎以下不起作用:
const result: SomeModel= SomeModel.findOne( {where:
{
startTime : {
[Op.eq] : someDateTime
}
}
});
【问题讨论】:
-
这取决于 startTime 和 someDateTime 的类型。添加模型定义和此列的 DB 类型以及 someDateTime 中的值。同时指出您正在使用的 wgat DBMS
-
startTime 是日期类型。 someDateTime 是一个 Date 对象。我正在使用 PostgreSQL 进行生产。用于单元测试 SQLite。
-
相等比较的两边都包含一个时间部分,这就是它们不相等的原因。尝试使用这样的东西: Sequelize.where(Sequelize.fn('date', Sequelize.col('startTime')), Sequelize.fn('date', someDateTime)) (请记住,sqlite 可能不支持这个函数)
-
这是否也会比较 Date 变量的时间部分?我想比较日期和时间。两者应该相等。
-
在这种情况下,您应该检查并比较数据库和变量中的时区。他们平等吗? PostreSQL DB 中的列的确切类型是什么?有时区还是没有时区?
标签: javascript node.js typescript orm sequelize.js