我实际上想要计算持续时间并按降序对结果进行排序。
我试过了,
db.run(totalSuccess.sortBy(ele => computeDuration(ele.startedOn, ele.completedOn).desc))
private def computeDuration(d1: Option[DateTime], d2: Option[DateTime]) = (d1, d2) match {
case (Some(d1),Some(d2)) => new Period(d1, d2, PeriodType.hours())
case _ => None
}
在ele.startedOn
为Rep[Option[DateTime]
且computeDuration
期望Option[DateTime]
时,会出现类型不匹配错误。
会起作用吗?还是有其他简单的方法可以做到这一点。
答案 0 :(得分:0)
使用数据库函数在数据库级别执行此操作。
def diff(d1: Rep[DateTime], d2: Rep[DateTime]): Rep[Long] = {
SimpleFunction.binary[DateTime, DateTime, Long]("datediff").apply(d1, d2)
}
使用适用于您的数据库解决方案的数据库函数替换datediff