我正在嘗試ZonedDateTime與以下代碼進行比較:val now = ZonedDateTime.now()val query = for { x <- xTable.query if x === id if x.starts.isAfter(now) // Doesn't work} yield x...slick.run(query.result)但似乎我無法訪問.isAfter因為x.startsis Rep[Option[...]],有沒有更好的方法來完成我想要實現的目標?
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超22個贊
根據您的描述,聽起來可能缺少合適的列類型映射。對于日期/時間模式,Slick 僅支持基于 JDBC 的java.sql.{Date, Time, Timestamp}. 無論在哪里ZonedDateTime使用,您都需要在范圍內使用隱式映射器。映射器應如下所示:
import java.sql.Timestamp
import java.time.ZonedDateTime
import scala.slick.driver.JdbcProfile.MappedColumnType
implicit val zonedDateTimeMapper = MappedColumnType.base[ZonedDateTime, Timestamp](
zdt => Timestamp.from(zdt.toInstant),
ts => ZonedDateTime.ofInstant(ts.toInstant, ZoneOffset.UTC)
)
添加回答
舉報
0/150
提交
取消