У меня есть таблица, в которой есть несколько записей. Я должен фильтровать эти записи между 2 датами или после / до заданной даты, или вообще не фильтровать, если даты не пройдены. Даты идут по полезной нагрузке маршрута сервера. Запрос выглядит примерно так:
select * from table where "id"=4 and (s2."createdAt" >= date("createdAt") and s2."createdAt" <= date("createdAt"))
Здесь может быть задано либо первое createdAt
, либо второе, либо его вообще нет, в случае чего запрос не будет иметь предложение и будет завершено в "id"=4
. Я использую sequelize для написания необработанного запроса и JavaScript / NodeJS для реализации. Вот код:
query = await sequelize.query(`select * from "Stores" s2 where "Id" = ${user.id} and (s2."createdAt" >='${param.fromDate}' and s2."createdAt <='${param.toDate}') group by date("createdAt")`);
В настоящее время я пишу 4 разных дела if / else с 4 разными запросами в зависимости от наличия даты. Как получить динамический c, определив только один запрос и добавив даты, если они доступны?