不推荐的方式
Warning: Take care of time zone information
您可以将LocalDate转换为时间戳并比较时间戳。
val timestamp = Timestamp.valueOf(localDate.atStartOfDay)
你的方法变成了
val userSuppliedLocalDate: LocalDate = ...
val userSuppliedTimestamp = Timestamp.valueOf(localDate.atStartOfDay)
usersTable.filter(_.modifiedDate === userSuppliedTimestamp).result
但是,这不是推荐的方式。
如果您想比较特定日期的时间戳。一个黑客将是
val start = Timestamp.valueOf(localDate.atStartOfDay())
val end = Timestamp.valueOf(start.plusDays(1))
usersTable.filter(row => row.modifiedDate >= start && row.modifiedDate < end).result
推荐的方法是使用LocalDate 本身作为光滑的表格列。
这怎么可能?
This possible with slick column mapper.
在范围内隐含以下内容。
implicit val mapper = MappedColumnType.base[LocalDate, Timestamp](
_.toLocalDateTime().toLocalDate(),
Timestamp.valueOf)
现在您可以直接拥有LocalDate 列
def birthday = column[LocalDate]("birthday")
现在可以直接比较
def birthdaysBefore(localDate: LocalDate) =
query.filter(_.birthday < localDate).result
您也可以使用其他比较运算符。