From f9cfe04b50915651b68653dc9a8e85b1b2f681cc Mon Sep 17 00:00:00 2001 From: Catherine Quamme Date: Wed, 21 Jun 2023 11:49:59 -0400 Subject: [PATCH] 0005892: DbCompare fails to write comparison SQL for timestamp with timezone values --- .../src/main/java/org/jumpmind/db/sql/Row.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/symmetric-db/src/main/java/org/jumpmind/db/sql/Row.java b/symmetric-db/src/main/java/org/jumpmind/db/sql/Row.java index 8f4641028c..b0632bb4d5 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/sql/Row.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/sql/Row.java @@ -302,14 +302,18 @@ protected void checkForColumn(String columnName) { } } - final private java.util.Date getDate(String value, String[] pattern) { + final private java.util.Date getDate(String value, String[] patterns) { int spaceIndex = value.lastIndexOf(" "); int fractionIndex = value.lastIndexOf("."); + int plusIndex = value.lastIndexOf("+"); + int minusIndex = value.substring(fractionIndex).lastIndexOf("-"); if (spaceIndex > 0 && fractionIndex > 0 && value.substring(fractionIndex, value.length()).length() > 3) { + if (plusIndex != -1 || minusIndex != -1) { + return FormatUtils.parseTimestampWithTimezone(value); + } return Timestamp.valueOf(value); - } else { - return FormatUtils.parseDate(value, pattern); } + return FormatUtils.parseDate(value, patterns); } public Object[] toArray(String[] keys) {