关于java:使用jOOQ间隔执行date_sub()函数

Implementing date_sub() function with intervals with jOOQ

从昨天开始我就一直在处理这个问题。

问题是我正在将查询迁移到jOOQ,并且在尝试实现此部分时遇到了困难:

1
select * from table where condition1 and date1 >= date_sub(now(), interval 1 days)

具体来说,这部分情况是:带有jOOQ的date_sub(now(),间隔1天)。

所以我的问题是:

  • 我应该在jOOQ中使用哪些函数来表示date_sub?

  • 如何使用jOOQ实施间隔X天???

  • 为明确起见,日期属于Timestamp

    类型

    预先感谢!


    解决方案:

    jOOQ略微偏向Oracle数据库,只需使用以下命令即可实现加/减天间隔:

    1
    2
    // Java
    DSL.currentTimestamp().sub(1);

    上面的渲染图:

    1
    2
    3
    4
    5
    -- Oracle
    sysdate - 1

    -- MySQL
    date_add(current_timestamp(), interval -1 day)

    当然,如果您愿意,也可以直接访问date_add()函数:

    1
    2
    // Java
    DSL.dateAdd(DSL.currentTimestamp(), -1);

    一些文档:

    • 手册中有关日期时间算术的部分
    • 手册中有关间隔数据类型的部分
    • Field.add() Javadoc
    • DSL.dateAdd() Javadoc