как сравнить строку с датой sql в граалях - PullRequest
0 голосов
/ 10 июня 2011

Я написал такой запрос

Rule.findAll("FROM Rule WHERE client_id = ? " +
    "AND DATE_FORMAT(contract_begins,'%d-%m-%Y') <= ?", [tripStartDate])

Но он не может сравнить дату SQL со строкой tripStartDate, как решить эту проблему, как проверить, что contract_begins меньше или равен tripStartDate.

1 Ответ

0 голосов
/ 10 июня 2011

Самый простой способ - создать новый объект данных из вашей строки для передачи в запрос. Предполагая (возможно, я неправильно понимаю) contract_begins отображается как тип даты в вашем правиле

Date tripStart = new SimpleDateFormat("dd-MM-yyyy").parse(tripStartDate)
Rule.findAllByClientAndContractBeginsLessThanEquals(client, tripStart)

или если вы действительно хотите сохранить hql, а не динамический поиск

Date tripStart = new SimpleDateFormat("dd-MM-yyyy").parse(tripStartDate)
Rule.findAll("FROM Rule WHERE client_id = :clientId AND contract_begins <= :tripStart",
        [clientId: client.id, tripStart: tripStart])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...