This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new 9efe9d4b EMPIREDB-386 SQLServer: Allow to provide decimal precision 
and scale for convert phrase
9efe9d4b is described below

commit 9efe9d4bced67e26dfce43bafc418100721545c9
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Mar 23 14:33:14 2023 +0100

    EMPIREDB-386
    SQLServer: Allow to provide decimal precision and scale for convert phrase
---
 .../java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
 
b/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
index 6d046df6..a3322a75 100644
--- 
a/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
+++ 
b/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
@@ -435,7 +435,13 @@ public class DBMSHandlerMSSQL extends DBMSHandlerBase
         {
            case BOOL:      return "convert(bit, ?)";
            case INTEGER:   return "convert(int, ?)";
-           case DECIMAL:   return "convert(decimal, ?)";
+           case DECIMAL:
+               if (format instanceof Number)
+               {   // Format should be a float, double or BigDecimal with 
prec.scale
+                   return "convert(decimal("+format.toString().replace('.', 
',')+"), ?)";
+               }
+               // plain
+               return "convert(decimal, ?)";
            case FLOAT:     return "convert(float, ?)";
            case DATE:      return "convert(date, ?, 111)";
            case TIME:      return "convert(time, ?)";

Reply via email to