繁体   English   中英

如何在Node中使用Sequelize将带有日期时间的WHERE子句写入

[英]How to write WHERE clause with a Datetime using Sequelize in Node

我正在尝试使用Sequelize语法编​​写以下where子句:

SELECT * FROM `artist` WHERE `deleted_at` = null OR `deleted_at` > now();

我已经以几种方式对where子句进行了序列化,包括用just or替换[sequelize.Op.or]

where: {
  deleted_at: {
    [sequelize.Op.or]: [null, { [sequelize.Op.gt]: (new Date()) }]
}

但是我的语法必须相去甚远,因为我的输出显示它正在运行以下查询:

SELECT `id`, `name`, `created_at`, `created_by`, `deleted_at`, `deleted_by` FROM `artist` AS `artist` WHERE `artist`.`deleted_at` = '2017-12-22 00:00:00' LIMIT 1;

时间不正确(应该显示下午晚些时候,而不是00:00:00),它不应该显示等号,甚至不包含null。 我无法从文档中得知语法是什么。 我的头撞在这里的墙上。

你可以试试这个吗?

  where: {
            [Op.or]: [{deleted_at: null}, {deleted_at:  { [sequelize.Op.gt]: (new Date()) }}]
        }

我把它放在格式的答案部分:)

除xelliof的答案外,还可以将运算符写成没有方括号的形式,具体如下:

    where: {
        $or:
        [
            { deleted_at: null },
            { deleted_at: { $gt: (new Date()) } }
        ]
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM