From 4c0f1ab9a901e3450f72b9f05f9b8ea7eeebb34d Mon Sep 17 00:00:00 2001 From: Jakub Neubauer Date: Tue, 14 Nov 2017 17:07:58 +0100 Subject: [PATCH 1/2] METAMODEL-1169 Keeping milliseconds when using DATETIME or TIMESTAMP in queries --- .../apache/metamodel/jdbc/dialects/SQLServerQueryRewriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/SQLServerQueryRewriter.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/SQLServerQueryRewriter.java index 4c7e588cc..3fdcf0e11 100644 --- a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/SQLServerQueryRewriter.java +++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/SQLServerQueryRewriter.java @@ -114,7 +114,7 @@ public String rewriteFilterItem(FilterItem item) { final Date date = (Date) operand; - final DateFormat format = DateUtils.createDateFormat("yyyyMMdd HH:mm:ss"); + final DateFormat format = DateUtils.createDateFormat("yyyyMMdd HH:mm:ss.SSS"); final String dateTimeValue = "CAST('" + format.format(date) + "' AS DATETIME)"; sb.append(dateTimeValue); From d943221e2e69e474a5b854029f607e04c10aba2a Mon Sep 17 00:00:00 2001 From: Jakub Neubauer Date: Fri, 17 Nov 2017 19:37:28 +0100 Subject: [PATCH 2/2] test fix --- .../apache/metamodel/dialects/SQLServerQueryRewriterTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdbc/src/test/java/org/apache/metamodel/dialects/SQLServerQueryRewriterTest.java b/jdbc/src/test/java/org/apache/metamodel/dialects/SQLServerQueryRewriterTest.java index f160036cd..ca07d1315 100644 --- a/jdbc/src/test/java/org/apache/metamodel/dialects/SQLServerQueryRewriterTest.java +++ b/jdbc/src/test/java/org/apache/metamodel/dialects/SQLServerQueryRewriterTest.java @@ -122,10 +122,10 @@ public void testRewriteFilterItem() { .select(column) .select(timestampColumn) .where(new FilterItem(new SelectItem(timestampColumn), OperatorType.LESS_THAN, TimeComparator - .toDate("2014-06-28 14:06:00"))); + .toDate("2014-06-28 14:06:00.123"))); assertEquals( - "SELECT MY_SCHEMA.\"foo\".\"bar\", timestamp FROM MY_SCHEMA.\"foo\" WHERE timestamp < CAST('20140628 14:06:00' AS DATETIME)", + "SELECT MY_SCHEMA.\"foo\".\"bar\", timestamp FROM MY_SCHEMA.\"foo\" WHERE timestamp < CAST('20140628 14:06:00.123' AS DATETIME)", qr.rewriteQuery(q)); }