Я пытаюсь использовать DATEPART в гладком запросе, чтобы получить сумму значений в каждом месяце года. Для этого я пытаюсь выполнить следующий запрос:
val empenhado = tableReference.filter(_.cancelled.isEmpty)
.filter(_.unidadeGestora like unidadeGestora)
.filter(_.confirmado)
.filter(_.anoEmissao === now.get(Calendar.YEAR))
.filterNot(_.id in queryEstornado)
.groupBy(r => datePart("mm",r.dataEmissao))
.map(r => (r._1, r._2.map(r2 => r2.valorEmpenhado).sum))
empenhado.run
Когда я пытаюсь запустить его, я получаю сообщение об ошибке:
[SQLException: для datepart указан неверный параметр 1.]
Я определил функцию datePart как:
protected val datePart = SimpleFunction.binary[String,Date,Int]("DATEPART")
Атрибут даты называется dataEmissao и отображается как java.sql.Date.
Как я могу правильно передать параметры в DATEPART?
ОБНОВЛЕНИЕ
Я проверил оператор SQL, сгенерированный slick, и заметил, что он пытается передать параметр в DATEPART как:
DATEPART('мм',x2."data_emissao")
пока должно быть:
DATEPART(мм,x2."data_emissao")
Как передать mm вместо 'mm'?