diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 7d6d9ae393..80392d05a1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -2118,6 +2118,29 @@ public class DefaultBinding implements Binding { super(converter, isLob); } + @Override + void sqlInline0(BindingSQLContext ctx, DayToSecond value) throws SQLException { + // [#566] Interval data types are best bound as Strings + if ( ctx.family() == POSTGRES) { + int sign = value.getSign(); + int days = sign * value.getDays(); + ctx.render().sql('\'') + .sql(days >= 0 ? '+' : '-') + .sql(Math.abs(days)) + .sql(' ') + .sql(sign * value.getHours()) + .sql(':') + .sql(sign * value.getMinutes()) + .sql(':') + .sql(sign * value.getSeconds()) + .sql('.') + .sql(StringUtils.leftPad(Integer.toString(value.getNano()), 9, '0')) + .sql('\''); + } + else + ctx.render().sql('\'').sql(value.toString()).sql('\''); + } + @Override final void set0(BindingSetStatementContext ctx, DayToSecond value) throws SQLException {