公开的SQL日期时间查询条件

问题描述

我有一个表,其中有两个类型为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) 
}