Формулировка проблемы: по задаче
API42 был реализован
расширенный поиск по формам/записям реестра, который принимает на
входе псевдоSQL-запрос, где в качестве столбцов указываются
компоненты формы. В зависимости от того, какие сравнения требуется
производить в запросе, к именам компонентов можно добавить суффикс
.TEXT
либо .INT
. Теперь, в
дополнение к ним, необходимо реализовать интерпретацию компонента
как даты (суффикс .DATE
).
Связанные задачи: API42
Решение: необходимо реализовать обработку
суффикса имени компонента .DATE
как даты в
формате yyyy-MM-dd hh:mm:ss
- т.е. при
составлении запроса (параметр query
) необходимо
будет приводить дату к этому формату.
Кроме этого, необходимо реализовать в запросах поддержку следующих
операций с компонентами, приведёнными к дате: =
,
>
, <
,
<=
, >=
, а также функций
манипуляции с датами, которые поддерживает MySQL.
Входные и выходные метода
rest/api/asforms/search/advanced
в рамках
реализации данной задачи не изменяются
Компоненты на форме:
date_col
- дата
Запрос: получить все записи с датой, которая входит в последние 30 дней:
{ "query": "WHERE TO_DAYS(NOW()) - TO_DAYS(`date_col.DATE`) <= 30", "parameters": [ "date_col.DATE" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true" }