Запрос временной метки по дате с помощью Sequelize - PullRequest
0 голосов
/ 28 февраля 2019

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

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

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

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

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

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

1 Ответ

0 голосов
/ 01 марта 2019

Использование функции DateDiff для получения дней в промежутке между createAt и dateString .Нужно привести приведение 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 => {

});
...