Postgresql 查询Sequelize模型字段以重叠日期间隔

Postgresql 查询Sequelize模型字段以重叠日期间隔,postgresql,sequelize.js,Postgresql,Sequelize.js,如何使用Sequelize modelSomeTable和.findAll方法执行以下查询: SELECT * from SomeTable WHERE (dateCol1, dateCol2) OVERLAPS ('2001-10-30', '2002-10-30') dateCol1和dateCol2是DATE列。您可以使用sequelize.literal: where : { sequelize.literal('(dateCol1, dateCol2) OVERLAPS ('

如何使用Sequelize model
SomeTable
.findAll
方法执行以下查询:

SELECT * from SomeTable WHERE (dateCol1, dateCol2) OVERLAPS ('2001-10-30', '2002-10-30')

dateCol1
dateCol2
DATE
列。

您可以使用
sequelize.literal

where : {
    sequelize.literal('(dateCol1, dateCol2) OVERLAPS ('2001-10-30', '2002-10-30')')
}

我有类似的问题,除了
dateCol1 dateCol2
的类型是
带有时区的时间戳而不是DATEONLY。
这就是我尝试的,它解决了我的问题

{
where: {
    [Op.all]: Sequelize.literal(`(dateCol1, dateCol2) OVERLAPS (to_timestamp(${new Date(date1).getTime() / 1000}),
            to_timestamp(${new Date(date2).getTime() / 1000}))`),
}}

现在我使用以下语法:
sequelize.literal(`(dateCol1,dateCol2)重叠(${sequelize.escape(start)},${sequelize.escape(finish)})`
谢谢你的回答,它很有效!我将等待其他答案,是否可以使用
[Op.overlap]
$overlap
语法来实现这一点?如果不可能,我会接受你的回答。@EugeneMala,如果它是左边的单列,它是可能的,但是它有两列,所以我知道它可能不可能。我还是可以等。