Как получить все записи за последние 7 дней - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь получить все записи из базы данных mysql с помощью sequelize, и я попробовал следующие подходы:

shops.findAndCountAll({
  where: {
    createdAt: {
      [Op.gte]: moment().subtract(7, 'days').toDate()
    }
  }
})

, и когда я использую это, я получаю ошибку: ReferenceError: moment is not defined

Итак, я попробовал этот подход:

shops.findAndCountAll({
  where: {
    createdAt: {
      [Op.gte]: Sequelize.literal('NOW() - INTERVAL "7d"'),
    }
  }
})

Но я получаю следующую ошибку

code: 'ER_PARSE_ERROR',
    errno: 1064,
    sqlState: '42000',
    sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to 

your MySQL server version for the right syntax to use near '' at line 1",
        sql: "SELECT count(*) AS `count` FROM `shop` AS `shops` WHERE `shops`.`createdAt` >= NOW() - INTERVAL '7d';"
      },
      sql: "SELECT count(*) AS `count` FROM `shop` AS `shops` WHERE `shops`.`createdAt` >= NOW() - INTERVAL '7d';"
    }

Как я могу исправить эту проблему. Я не возражаю против того, какой из подходов я использую, пока я заставляю его работать.

Заранее спасибо

1 Ответ

2 голосов
/ 22 февраля 2020

Вы не импортируете moment; следовательно, moment не определено.

try

const moment = require('moment') //<es6

или

import moment from 'moment' 
...