From a45a51f6bad9142b773add3146f4937d10432e53 Mon Sep 17 00:00:00 2001 From: Andre Vieira <5325718+andrevlins@users.noreply.github.com> Date: Tue, 16 Feb 2021 00:07:55 -0300 Subject: [PATCH 1/2] OracleCompiler - CompileBasicDateCondition condition.Part must use .ToLowerInvariant() to match who uses query on uppercase like .WhereDatePart("DATE", ..., ....); --- QueryBuilder/Compilers/OracleCompiler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryBuilder/Compilers/OracleCompiler.cs b/QueryBuilder/Compilers/OracleCompiler.cs index f9f95bf2..4066563c 100644 --- a/QueryBuilder/Compilers/OracleCompiler.cs +++ b/QueryBuilder/Compilers/OracleCompiler.cs @@ -108,7 +108,7 @@ protected override string CompileBasicDateCondition(SqlResult ctx, BasicDateCond var isDateTime = (condition.Value is DateTime dt); - switch (condition.Part) + switch (condition.Part?.ToLowerInvariant()) { case "date": // assume YY-MM-DD format if (isDateTime) From 514cd2cd5b3668aa474f6455c6d154417666a945 Mon Sep 17 00:00:00 2001 From: Andre Vieira <5325718+andrevlins@users.noreply.github.com> Date: Tue, 16 Feb 2021 00:19:45 -0300 Subject: [PATCH 2/2] Better approach is to use lowercase on WhereDatePart method --- QueryBuilder/Base.Where.cs | 2 +- QueryBuilder/Compilers/OracleCompiler.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QueryBuilder/Base.Where.cs b/QueryBuilder/Base.Where.cs index 62eb5145..02f8f498 100644 --- a/QueryBuilder/Base.Where.cs +++ b/QueryBuilder/Base.Where.cs @@ -581,7 +581,7 @@ public Q WhereDatePart(string part, string column, string op, object value) Operator = op, Column = column, Value = value, - Part = part, + Part = part?.ToLowerInvariant(), IsOr = GetOr(), IsNot = GetNot(), }); diff --git a/QueryBuilder/Compilers/OracleCompiler.cs b/QueryBuilder/Compilers/OracleCompiler.cs index 4066563c..f9f95bf2 100644 --- a/QueryBuilder/Compilers/OracleCompiler.cs +++ b/QueryBuilder/Compilers/OracleCompiler.cs @@ -108,7 +108,7 @@ protected override string CompileBasicDateCondition(SqlResult ctx, BasicDateCond var isDateTime = (condition.Value is DateTime dt); - switch (condition.Part?.ToLowerInvariant()) + switch (condition.Part) { case "date": // assume YY-MM-DD format if (isDateTime)