如何通过光滑从startTime和endTime [DateTime]中查找持续时间

时间:2016-11-03 09:54:47

标签: scala datetime slick-3.0

我实际上想要计算持续时间并按降序对结果进行排序。

我试过了,

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.startedOnRep[Option[DateTime]computeDuration期望Option[DateTime]时,会出现类型不匹配错误。

会起作用吗?还是有其他简单的方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

使用数据库函数在数据库级别执行此操作。

def diff(d1: Rep[DateTime], d2: Rep[DateTime]): Rep[Long] = {
  SimpleFunction.binary[DateTime, DateTime, Long]("datediff").apply(d1, d2)
}

使用适用于您的数据库解决方案的数据库函数替换datediff