diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index f508440668..82ea4537cd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -15274,83 +15274,99 @@ public class DSL { /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field dateDiff(Date date1, Date date2) { - return dateDiff(Tools.field(date1), Tools.field(date2)); + public static Field dateDiff(Date endDate, Date startDate) { + return dateDiff(Tools.field(endDate), Tools.field(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field dateDiff(Field date1, Date date2) { - return dateDiff(nullSafe(date1), Tools.field(date2)); + public static Field dateDiff(Field endDate, Date startDate) { + return dateDiff(nullSafe(endDate), Tools.field(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field dateDiff(Date date1, Field date2) { - return dateDiff(Tools.field(date1), nullSafe(date2)); + public static Field dateDiff(Date endDate, Field startDate) { + return dateDiff(Tools.field(endDate), nullSafe(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field dateDiff(Field date1, Field date2) { - return new DateDiff<>(null, nullSafe(date1), nullSafe(date2)); + public static Field dateDiff(Field endDate, Field startDate) { + return new DateDiff<>(null, nullSafe(startDate), nullSafe(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field dateDiff(DatePart part, Date date1, Date date2) { - return dateDiff(part, Tools.field(date1), Tools.field(date2)); + public static Field dateDiff(DatePart part, Date startDate, Date endDate) { + return dateDiff(part, Tools.field(startDate), Tools.field(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field dateDiff(DatePart part, Field date1, Date date2) { - return dateDiff(part, nullSafe(date1), Tools.field(date2)); + public static Field dateDiff(DatePart part, Field startDate, Date endDate) { + return dateDiff(part, nullSafe(startDate), Tools.field(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field dateDiff(DatePart part, Date date1, Field date2) { - return dateDiff(part, Tools.field(date1), nullSafe(date2)); + public static Field dateDiff(DatePart part, Date startDate, Field endDate) { + return dateDiff(part, Tools.field(startDate), nullSafe(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field dateDiff(DatePart part, Field date1, Field date2) { - return new DateDiff<>(part, nullSafe(date1), nullSafe(date2)); + public static Field dateDiff(DatePart part, Field startDate, Field endDate) { + return new DateDiff<>(part, nullSafe(startDate), nullSafe(endDate)); } /** @@ -15664,83 +15680,99 @@ public class DSL { /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field localDateDiff(LocalDate date1, LocalDate date2) { - return localDateDiff(Tools.field(date1), Tools.field(date2)); + public static Field localDateDiff(LocalDate endDate, LocalDate startDate) { + return localDateDiff(Tools.field(endDate), Tools.field(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field localDateDiff(Field date1, LocalDate date2) { - return localDateDiff(nullSafe(date1), Tools.field(date2)); + public static Field localDateDiff(Field endDate, LocalDate startDate) { + return localDateDiff(nullSafe(endDate), Tools.field(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field localDateDiff(LocalDate date1, Field date2) { - return localDateDiff(Tools.field(date1), nullSafe(date2)); + public static Field localDateDiff(LocalDate endDate, Field startDate) { + return localDateDiff(Tools.field(endDate), nullSafe(startDate)); } /** - * Get the date difference between date1 - date2 in number of - * days. + * Get the date difference between endDate - startDate in + * number of days. * * @see Field#sub(Field) */ @Support - public static Field localDateDiff(Field date1, Field date2) { - return new DateDiff<>(null, nullSafe(date1), nullSafe(date2)); + public static Field localDateDiff(Field endDate, Field startDate) { + return new DateDiff<>(null, nullSafe(startDate), nullSafe(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field localDateDiff(DatePart part, LocalDate date1, LocalDate date2) { - return localDateDiff(part, Tools.field(date1), Tools.field(date2)); + public static Field localDateDiff(DatePart part, LocalDate startDate, LocalDate endDate) { + return localDateDiff(part, Tools.field(startDate), Tools.field(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field localDateDiff(DatePart part, Field date1, LocalDate date2) { - return localDateDiff(part, nullSafe(date1), Tools.field(date2)); + public static Field localDateDiff(DatePart part, Field startDate, LocalDate endDate) { + return localDateDiff(part, nullSafe(startDate), Tools.field(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field localDateDiff(DatePart part, LocalDate date1, Field date2) { - return localDateDiff(part, Tools.field(date1), nullSafe(date2)); + public static Field localDateDiff(DatePart part, LocalDate startDate, Field endDate) { + return localDateDiff(part, Tools.field(startDate), nullSafe(endDate)); } /** - * Get the date difference between date1 - date2 in terms of - * part. + * Get the date difference between endDate - startDate in terms + * of part. + *

+ * For example, DATEDIFF(YEAR, '2000-03-01', '2002-01-01') = 2, + * despite there being less than 2 years between the two days. The behaviour + * replicates that of SQL Server. */ @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) - public static Field localDateDiff(DatePart part, Field date1, Field date2) { - return new DateDiff<>(part, nullSafe(date1), nullSafe(date2)); + public static Field localDateDiff(DatePart part, Field startDate, Field endDate) { + return new DateDiff<>(part, nullSafe(startDate), nullSafe(endDate)); } /** diff --git a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java index fce26438b6..270f3dfdf2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java +++ b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java @@ -72,15 +72,15 @@ final class DateDiff extends AbstractField { private static final long serialVersionUID = -4813228000332771961L; private final DatePart part; - private final Field date1; - private final Field date2; + private final Field startDate; + private final Field endDate; - DateDiff(DatePart part, Field date1, Field date2) { + DateDiff(DatePart part, Field startDate, Field endDate) { super(N_DATEDIFF, SQLDataType.INTEGER); this.part = part; - this.date1 = date1; - this.date2 = date2; + this.startDate = startDate; + this.endDate = endDate; } @Override @@ -108,23 +108,23 @@ final class DateDiff extends AbstractField { return; case DAY: - ctx.visit(N_DATEDIFF).sql('(').visit(date1).sql(", ").visit(date2).sql(')'); + ctx.visit(N_DATEDIFF).sql('(').visit(endDate).sql(", ").visit(startDate).sql(')'); return; case MILLISECOND: - ctx.visit(new DateDiff<>(MICROSECOND, date1, date2).div(inline(1000))); + ctx.visit(new DateDiff<>(MICROSECOND, startDate, endDate).div(inline(1000))); return; case NANOSECOND: - ctx.visit(new DateDiff<>(MICROSECOND, date1, date2).times(inline(1000))); + ctx.visit(new DateDiff<>(MICROSECOND, startDate, endDate).times(inline(1000))); return; } - ctx.visit(N_TIMESTAMPDIFF).sql('(').visit(p.toName()).sql(", ").visit(date2).sql(", ").visit(date1).sql(')'); + ctx.visit(N_TIMESTAMPDIFF).sql('(').visit(p.toName()).sql(", ").visit(startDate).sql(", ").visit(endDate).sql(')'); return; case DERBY: - ctx.sql("{fn ").visit(N_TIMESTAMPDIFF).sql('(').visit(keyword("sql_tsi_day")).sql(", ").visit(date2).sql(", ").visit(date1).sql(") }"); + ctx.sql("{fn ").visit(N_TIMESTAMPDIFF).sql('(').visit(keyword("sql_tsi_day")).sql(", ").visit(startDate).sql(", ").visit(endDate).sql(") }"); return; @@ -160,14 +160,14 @@ final class DateDiff extends AbstractField { case MICROSECOND: case NANOSECOND: if (ctx.family() == HSQLDB) { - ctx.visit(N_DATEDIFF).sql('(').visit(p.toKeyword()).sql(", ").visit(date2.cast(TIMESTAMP)).sql(", ").visit(date1.cast(TIMESTAMP)).sql(')'); + ctx.visit(N_DATEDIFF).sql('(').visit(p.toKeyword()).sql(", ").visit(startDate.cast(TIMESTAMP)).sql(", ").visit(endDate.cast(TIMESTAMP)).sql(')'); return; } break; } - ctx.visit(N_DATEDIFF).sql('(').visit(p.toKeyword()).sql(", ").visit(date2).sql(", ").visit(date1).sql(')'); + ctx.visit(N_DATEDIFF).sql('(').visit(p.toKeyword()).sql(", ").visit(startDate).sql(", ").visit(endDate).sql(')'); return; @@ -177,7 +177,7 @@ final class DateDiff extends AbstractField { case SQLITE: - ctx.sql('(').visit(N_STRFTIME).sql("('%s', ").visit(date1).sql(") - ").visit(N_STRFTIME).sql("('%s', ").visit(date2).sql(")) / 86400"); + ctx.sql('(').visit(N_STRFTIME).sql("('%s', ").visit(endDate).sql(") - ").visit(N_STRFTIME).sql("('%s', ").visit(startDate).sql(")) / 86400"); return; @@ -218,7 +218,7 @@ final class DateDiff extends AbstractField { // [#4481] Parentheses are important in case this expression is // placed in the context of other arithmetic - ctx.sql('(').visit(date1).sql(" - ").visit(date2).sql(')'); + ctx.sql('(').visit(endDate).sql(" - ").visit(startDate).sql(')'); return; } @@ -248,11 +248,11 @@ final class DateDiff extends AbstractField { } - ctx.visit(castIfNeeded(date1.minus(date2), Integer.class)); + ctx.visit(castIfNeeded(endDate.minus(startDate), Integer.class)); } private final Field partDiff(DatePart p) { - return DSL.extract(date1, p).minus(DSL.extract(date2, p)); + return DSL.extract(endDate, p).minus(DSL.extract(startDate, p)); } /**