在Scala Slick中使用datetime/timestamp,可以通过使用Slick的内置类型和函数来处理日期和时间数据。
java.sql.Timestamp
类型来表示日期和时间字段。例如,假设你有一个名为users
的表,其中包含一个created_at
字段表示用户创建时间,可以这样定义:import java.sql.Timestamp
import slick.jdbc.MySQLProfile.api._
case class User(id: Int, name: String, createdAt: Timestamp)
class Users(tag: Tag) extends Table[User](tag, "users") {
def id = column[Int]("id", O.PrimaryKey)
def name = column[String]("name")
def createdAt = column[Timestamp]("created_at")
def * = (id, name, createdAt) <> (User.tupled, User.unapply)
}
val users = TableQuery[Users]
currentTimestamp
:获取当前时间戳datePart
:提取日期部分timePart
:提取时间部分extract
:提取指定部分的日期或时间dateAdd
:添加指定的时间间隔dateSub
:减去指定的时间间隔interval
:创建时间间隔例如,如果你想查询创建时间在某个时间段内的用户,可以使用between
函数:
val startTime: Timestamp = ...
val endTime: Timestamp = ...
val query = users.filter(_.createdAt.between(startTime, endTime))
请注意,以上仅为示例推荐,实际选择产品时需要根据具体需求进行评估和比较。
领取专属 10元无门槛券
手把手带您无忧上云