问题描述
我有一个表,其中有两个类型为Datetime和int的字段。
object DummyTable : IntIdTable("db.table",columnName = "id") {
val createdAt = datetime("created_at")
val mins = integer("mins")
override val primaryKey = PrimaryKey(id)
}
我有一个函数想要检查createdAt plus mins现在小于Datetime的条件。
fun isValid(id: String): String? {
return DummyTable.select{
COND??
}.single()[DummyTable.age]
}
类似这样的东西:
DummyTable.createdAt plus minutes lessEq DateTime.Now()??
查询条件是什么?
解决方法
我认为github的答案就足够了。
class DateAddMins(val dateExp: Expression<DateTime>,val addMins: Expression<Int?>) : Expression<DateTime>() {
override fun toQueryBuilder(queryBuilder: QueryBuilder) = queryBuilder {
append("DATE_ADD(",dateExp,",INTERVAL IFNULL(",addMins,0) MINUTE)")
}
}
DummyTable.select {
DateAddMins(DummyTable.createdAt,DummyTable.mins) lessEq DateTime.now)
}