我试图将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.starts是Rep[Option[...]],有更好的方法来实现我想要实现的目标吗?
发布于 2018-10-08 02:36:44
从您所描述的情况来看,可能缺少一个合适的列类型映射。对于date/time 图式,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)
)https://stackoverflow.com/questions/52693904
复制相似问题