From 0534096ad2be21b77dfd22a092b7b682e3d95d56 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Tue, 22 Mar 2022 14:47:12 +0100 Subject: [PATCH] Fix date formatting in query --- store/cockroach/sql_functions.go | 5 +++-- store/postgres/sql_functions.go | 2 +- store/tests/compose_records_test.go | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/store/cockroach/sql_functions.go b/store/cockroach/sql_functions.go index db0f08141..f44bc97e9 100644 --- a/store/cockroach/sql_functions.go +++ b/store/cockroach/sql_functions.go @@ -2,8 +2,9 @@ package cockroach import ( "fmt" - "github.com/cortezaproject/corteza-server/pkg/ql" "strings" + + "github.com/cortezaproject/corteza-server/pkg/ql" ) func sqlFunctionHandler(f ql.Function) (ql.ASTNode, error) { @@ -11,7 +12,7 @@ func sqlFunctionHandler(f ql.Function) (ql.ASTNode, error) { case "QUARTER", "YEAR": return ql.MakeFormattedNode(fmt.Sprintf("EXTRACT(%s FROM %%s::date)", f.Name), f.Arguments...), nil case "DATE_FORMAT": - return ql.MakeFormattedNode("TO_CHAR(%s, %s)", f.Arguments...), nil + return ql.MakeFormattedNode("TO_CHAR(%s::TIMESTAMPTZ, %s::TEXT)", f.Arguments...), nil case "DATE": return ql.MakeFormattedNode("%s::DATE", f.Arguments...), nil case "DATE_ADD", "DATE_SUB", "STD": diff --git a/store/postgres/sql_functions.go b/store/postgres/sql_functions.go index 2b12bc9f3..472840f04 100644 --- a/store/postgres/sql_functions.go +++ b/store/postgres/sql_functions.go @@ -42,7 +42,7 @@ func sqlFunctionHandler(f ql.Function) (ql.ASTNode, error) { case "QUARTER", "YEAR": return ql.MakeFormattedNode(fmt.Sprintf("EXTRACT(%s FROM %%s::date)", f.Name), f.Arguments...), nil case "DATE_FORMAT": - return ql.MakeReplacedFormattedNode("TO_CHAR(%s, %s)", translateDateFormatParams, f.Arguments...), nil + return ql.MakeReplacedFormattedNode("TO_CHAR(%s::TIMESTAMPTZ, %s::TEXT)", translateDateFormatParams, f.Arguments...), nil case "TIMESTAMP": return ql.MakeFormattedNode("TIMESTAMPTZ(%s::TIMESTAMPTZ)", f.Arguments...), nil case "DATE": diff --git a/store/tests/compose_records_test.go b/store/tests/compose_records_test.go index ea84f95c3..9ce1150c1 100644 --- a/store/tests/compose_records_test.go +++ b/store/tests/compose_records_test.go @@ -1676,6 +1676,7 @@ func testComposeRecords(t *testing.T, s store.ComposeRecords) { {"datetime1 > '2020-10-02T00:00:02'", "1003;1004"}, {"date1 > '2020-10-02'", "2003;2004"}, {"time1 > '02:00:00'", "3003;3004"}, + {"(TIMESTAMP(DATE_FORMAT(datetime1, '%Y-%m-%dT%H:%i:00Z')) = TIMESTAMP(DATE_FORMAT('2020-10-02T00:00:02', '%Y-%m-%dT%H:%i:00Z')))", "1002"}, } )