diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 396513fc64..bdb7556839 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -8000,7 +8000,7 @@ public class DSL { */ @Support public static Field dateAdd(Date date, Number interval, DatePart datePart) { - return new DateAdd(Utils.field(date), Utils.field(interval), datePart); + return dateAdd(Utils.field(date), Utils.field(interval), datePart); } /** @@ -8010,7 +8010,7 @@ public class DSL { */ @Support public static Field dateAdd(Date date, Field interval, DatePart datePart) { - return new DateAdd(Utils.field(date), nullSafe(interval), datePart); + return dateAdd(Utils.field(date), nullSafe(interval), datePart); } /** @@ -8020,7 +8020,7 @@ public class DSL { */ @Support public static Field dateAdd(Field date, Number interval, DatePart datePart) { - return new DateAdd(nullSafe(date), Utils.field(interval), datePart); + return dateAdd(nullSafe(date), Utils.field(interval), datePart); } /** @@ -8033,6 +8033,70 @@ public class DSL { return new DateAdd(nullSafe(date), nullSafe(interval), datePart); } + /** + * Subtract an interval from a date. + *

+ * This translates into any dialect + * + * @see Field#add(Number) + */ + @Support + public static Field dateSub(Date date, Number interval) { + return dateSub(Utils.field(date), Utils.field(interval)); + } + + /** + * Subtract an interval from a date. + *

+ * This translates into any dialect + * + * @see Field#add(Field) + */ + @Support + public static Field dateSub(Field date, Field interval) { + return nullSafe(date).sub(interval); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field dateSub(Date date, Number interval, DatePart datePart) { + return dateSub(Utils.field(date), Utils.field(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field dateSub(Date date, Field interval, DatePart datePart) { + return dateSub(Utils.field(date), nullSafe(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field dateSub(Field date, Number interval, DatePart datePart) { + return dateSub(nullSafe(date), Utils.field(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field dateSub(Field date, Field interval, DatePart datePart) { + return new DateAdd(nullSafe(date), nullSafe(interval).neg(), datePart); + } + /** * Get the date difference in number of days. *