Чтобы получить количество записей за этот месяц в последовательности

#node.js #postgresql #datetime #sequelize.js

#node.js #postgresql #дата и время #sequelize.js

Вопрос:

я использовал базу данных postgresql с типом столбца createdAt в качестве метки времени с часовым поясом.

я хочу отфильтровать записи за текущий месяц

 Example.findAndCountAll({  where: {  createdAt: [Sequelize.fn("date_trunc", "month", Sequelize.col("createdAt"))]  } });  

я попробовал приведенный выше код,но он возвращает 0 , даже если записи есть за текущий месяц, я хотел получить записи, которые были сделаны с начала месяца по настоящее время, и это должно динамически работать для каждого месяца .

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

Комментарии:

1. Я не эксперт в секвенировании, но где вы проводите месяц и год, за которые хотите получить результат?? Что-то вроде этого должно сработать: [Op.and]: [ { createdAt: { [Op.gte]: '2021-12-01' } }, { createdAt: { [Op.lte]: '2021-12-31' } }, ] или попробуйте [Op.between] вместо [Op.and] Очевидно, вы можете переключиться '2021-12-31' на все, что вам нужно.

2. Привет , я не прохожу определенный месяц или год..я хотел, чтобы функция получала текущий месяц с новой даты() и сравнивала его с «созданным», чтобы получить результат.. и я хотел , чтобы это происходило каждый месяц, не указывая дату вручную, можете ли вы предложить какой-либо способ сделать «2021-12-01» и «2021-12-31» динамичными? Спасибо.

3. Самый простой способ сделать это-использовать moment.js или day.js библиотека для форматирования даты, например, с помощью day.js первый день месяца dayjs().date(1).format('yyyy-MM-dd') и за последний день месяца dayjs().date(dayjs().daysInMonth()).format('yyyy-MM-dd')

4. Привет, большое тебе спасибо.. это работает