JOOQ如何添加时间戳和一个表示毫秒的整数?

时间:2017-09-13 10:37:41

标签: java sql timestamp jooq

我有一个表格,其中包含有关事情发生频率的整数值:

my_table.frequency(Integer)
my_table.last_run(Timestamp)

我想要的是添加频率最后一次运行以检查它是否小于或大于当前时间。

这必须在JOOQ中完成。

这基本上就是我要做的。

dsl.selectFrom(FTP_CONFIGURATIONS)                
   .where(FTP_CONFIGURATIONS.DIRECTION.eq("FROM")   
   .and(DSL.timestampAdd(
       FTP_CONFIGURATIONS.LAST_RUN,
       FTP_CONFIGURATIONS.FREQUENCY.div(1000)), DatePart.SECOND)
   .lessOrEqual(DSL.currentTimestamp())))                
   .orderBy(FTP_CONFIGURATIONS.ID.desc())

我没有得到我需要的东西。为什么我不知道,因为我不知道如何检查生成的SQL ????

1 个答案:

答案 0 :(得分:1)

dsl.selectFrom(FTP_CONFIGURATIONS) .where(FTP_CONFIGURATIONS.DIRECTION.eq("FROM") .and(DSL.timestampAdd(FTP_CONFIGURATIONS.LAST_RUN,FTP_CONFIGURATIONS.FREQUENCY.div(1000)),DatePart.SECOND) .lessOrEqual(DSL.currentTimestamp()))) .orderBy(FTP_CONFIGURATIONS.ID.desc())

这实际上是答案,但我不应该相信它。是普罗霍罗夫先生引导我,建议我应该使用Interval。

我无法让它发挥作用的原因是last_run中的老人。