Запрос временной метки по дате с помощью 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 => {
});