Запрос временной метки по дате с помощью Sequelize

Я хочу найти некоторые записи в моей БД через createdAt столбец, но только с использованием даты. Я использую Postgres и createdAt это timestamptz, Вот пример того, как выглядит запись в нем: 2019-02-27 20:17:07.05+00

Вот как выглядит настройка моего запроса:

const dateString = momentDate.format('YYYY-MM-DD')
query.createdAt = { $iLike: `%${dateString}` }

К сожалению, это не работает, и я получаю следующую ошибку:

повторить как было обещано: ошибка SequelizeDatabaseError: оператор не существует: временная метка с часовым поясом ~~* неизвестно

Возможно, проблема в том, что я использую строку? Как правильно сделать запрос по дате?

1 ответ

Использование функции DateDiff для получения дней между созданными и датированными. Нужно привести приведение dateString к datetime

var sequelize = require('sequelize');

var dateString = '01/03/2019';
yourModel.findAll({
    where: sequelize.literal(`DATEDIFF(day,Cast(${dateString} as datetime), createdAt) = 0`)
})
.then(results => {

})
.catch(err => {

});
Другие вопросы по тегам