Сравнение даты в node js с использованием sequelize - PullRequest
0 голосов
/ 30 апреля 2020

На самом деле я использую базу данных sqlite (таблицы). Node.js для серверной части. Теперь мне нужно получить записи, которые попадают под две указанные даты c (например, 24.04.2020 с 11.00 до 28.04.2020 в 14.00). Как мне это сделать? в каком формате мне нужно хранить дату и время в базе данных? а как я сравниваю?

1 Ответ

0 голосов
/ 30 апреля 2020

Sequelize использует js date. Таким образом, вы можете сделать что-то вроде:

const { Op } = require("sequelize");

Foo.findAll({
  where: {

    // myDateColumn < [timestamp] AND myDateColumn > [timestamp]
    {
      myDateColumn: {
        [Op.lt]: new Date(),
        [Op.gt]: new Date(new Date() - 24 * 60 * 60 * 1000)
      }
    },


    // myDateColumn in range
    [Op.notBetween]: [new Date(), new Date(new Date() - 24 * 60 * 60 * 1000)]
  }
});

Я также рекомендую использовать момент. js или luxon (личный фаворит) для обработки дат.

Использование luxon для форматирования дат:

const DateTime = require('luxon');

// the reason we love luxon is because it's easy to set the timezone 
const startDate = DateTime.local().setZone('America/New_York').fromISO('2020-04-24T11:00:00').toJSDate();

Подробнее читайте здесь: https://sequelize.org/master/manual/model-querying-basics.html

...