Формулировка проблемы: по задаче
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"
}