【问题标题】:sequelize between date range always returning date today instead of date in records日期范围之间的续集总是返回今天的日期而不是记录中的日期
【发布时间】:2018-09-14 21:16:32
【问题描述】:

当我尝试选择 start_date :"2018-03-06T05:16:21.078Z 和 end_date :"2017-03-08T05:16:21.078Z 但在日志中总是说

Executing (default):

SELECT `order_number`, `distribute_channel`, `sku_name`, `buyer_name`, `buyer_email`,
    `buyer_mobile`, `quantity`, `id_principal`, `total_nominal`,
    `posting_date`, `distribute_date`
FROM `central_ile` AS `centralIle`
WHERE `centralIle`.`order_number` = '213149361835030' AND
      `centralIle`.`created_date` = '2018-09-13 17:00:00'
LIMIT 0, 10;de here

这是我的脚本

let start_date= req.body.start_date
let end_date = req.body.end_date
let whereStatement = {}

 if (start_date && end_date) {
            whereStatement.created_date = {
                created_date : {
                    $between :[start_date , end_date]
                },
            }
        }
      let centralIleData = await CentralIle.findAll({
            raw:true,
            nest:true,
            where : whereStatement,
       })

我的代码实际上有什么问题?

【问题讨论】:

  • 请注意,实际执行的原始查询使用的 created_date 值与您假设的输入都不匹配。您确定您向我们展示的代码实际上是生成该查询的原因吗?
  • 那么如何按日期范围选择它?
  • 我不知道续集。我只知道您的BETWEEN 逻辑没有进入实际查询。
  • 我也尝试了`$lt:start_date, $gt:end_date`,但是没有用
  • 还要注意,没有 ORDER BY 的 LIMIT 是毫无意义的

标签: mysql node.js express select sequelize.js


【解决方案1】:

你可以试试这样。它应该工作

whereStatement.created_date = { $between :[start_date , end_date] }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多