diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index f506b9dc52..4a6d8ce35b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -4797,14 +4797,22 @@ public class DefaultBinding implements Binding { @Override final Time get0(BindingGetResultSetContext ctx) throws SQLException { - // SQLite's type affinity needs special care... - if (ctx.family() == SQLDialect.SQLITE) { - String time = ctx.resultSet().getString(ctx.index()); - return time == null ? null : new Time(parse(Time.class, time)); - } + switch (ctx.family()) { - else { - return ctx.resultSet().getTime(ctx.index()); + // ResultSet.getTime() isn't implemented correctly, see: https://github.com/duckdb/duckdb/issues/10682 + case DUCKDB: { + String time = ctx.resultSet().getString(ctx.index()); + return time == null ? null : Convert.convert(time, Time.class); + } + + // SQLite's type affinity needs special care... + case SQLITE: { + String time = ctx.resultSet().getString(ctx.index()); + return time == null ? null : new Time(parse(Time.class, time)); + } + + default: + return ctx.resultSet().getTime(ctx.index()); } }