[jOOQ/jOOQ#2620] Add support for BigQuery DATE_DIFF and TIMESTAMP_DIFF
This commit is contained in:
parent
d6189e5514
commit
078d4cc440
@ -49,7 +49,10 @@ import static org.jooq.SQLDialect.FIREBIRD;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.impl.DSL.function;
|
||||
import static org.jooq.impl.DSL.inline;
|
||||
import static org.jooq.impl.Keywords.K_DAY;
|
||||
import static org.jooq.impl.Keywords.K_MILLISECOND;
|
||||
import static org.jooq.impl.Names.N_DATEDIFF;
|
||||
import static org.jooq.impl.Names.N_DATE_DIFF;
|
||||
import static org.jooq.impl.Names.N_DAYS;
|
||||
import static org.jooq.impl.Names.N_DAYS_BETWEEN;
|
||||
import static org.jooq.impl.Names.N_SQL_TSI_DAY;
|
||||
@ -59,6 +62,7 @@ import static org.jooq.impl.Names.N_SQL_TSI_MINUTE;
|
||||
import static org.jooq.impl.Names.N_SQL_TSI_SECOND;
|
||||
import static org.jooq.impl.Names.N_STRFTIME;
|
||||
import static org.jooq.impl.Names.N_TIMESTAMPDIFF;
|
||||
import static org.jooq.impl.Names.N_TIMESTAMP_DIFF;
|
||||
import static org.jooq.impl.SQLDataType.TIMESTAMP;
|
||||
import static org.jooq.impl.Tools.castIfNeeded;
|
||||
|
||||
@ -211,6 +215,10 @@ final class DateDiff<T> extends AbstractField<Integer> {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case SQLITE:
|
||||
ctx.sql('(').visit(N_STRFTIME).sql("('%s', ").visit(endDate).sql(") - ").visit(N_STRFTIME).sql("('%s', ").visit(startDate).sql(")) / 86400");
|
||||
return;
|
||||
|
||||
@ -353,6 +353,7 @@ final class Names {
|
||||
static final Name N_TAU = unquotedName("tau");
|
||||
static final Name N_TIMESTAMPADD = unquotedName("timestampadd");
|
||||
static final Name N_TIMESTAMPDIFF = unquotedName("timestampdiff");
|
||||
static final Name N_TIMESTAMP_DIFF = unquotedName("timestamp_diff");
|
||||
static final Name N_TO_CHAR = unquotedName("to_char");
|
||||
static final Name N_TO_CLOB = unquotedName("to_clob");
|
||||
static final Name N_TO_DATE = unquotedName("to_date");
|
||||
|
||||
@ -9236,6 +9236,18 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
throw unsupportedClause();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -45,6 +45,7 @@ import static org.jooq.impl.Names.N_DAYS;
|
||||
import static org.jooq.impl.Names.N_NANO100_BETWEEN;
|
||||
import static org.jooq.impl.Names.N_STRFTIME;
|
||||
import static org.jooq.impl.Names.N_TIMESTAMPDIFF;
|
||||
import static org.jooq.impl.Names.N_TIMESTAMP_DIFF;
|
||||
import static org.jooq.impl.SQLDataType.INTEGER;
|
||||
import static org.jooq.impl.SQLDataType.INTERVALDAYTOSECOND;
|
||||
import static org.jooq.impl.Tools.castIfNeeded;
|
||||
@ -114,6 +115,10 @@ final class TimestampDiff extends AbstractField<DayToSecond> {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user