0
我實際上想要計算持續時間並按降序對結果進行排序。如何查找從startTime和endTime [通過浮油的DateTime]的持續時間
我都試過了,
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]
。
可以嗎?或者有沒有其他簡單的方法來做到這一點。
不,這是行不通的。您必須記住Slick生成SQL中的數據庫IO操作。儘管API看起來像標準的Scala代碼,但除非Slick明確支持,否則不能使用任意類型。在你的情況下,你必須定義一個用於間隔計算的Slick函數,它將映射到一個本地SQL函數。你可能會發佈一個完整的代碼示例編譯? – user3588254