diff --git a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulaQueryBuilderFromString.ts b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulaQueryBuilderFromString.ts index 99f2fcaf80..929186eaa2 100644 --- a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulaQueryBuilderFromString.ts +++ b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulaQueryBuilderFromString.ts @@ -136,6 +136,11 @@ export default function formulaQueryBuilder( type: 'CallExpression', arguments: [pt.left], }; + pt.right = { + callee: { name: 'FLOAT' }, + type: 'CallExpression', + arguments: [pt.right], + }; } const query = knex.raw( diff --git a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulav2/formulaQueryBuilderv2.ts b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulav2/formulaQueryBuilderv2.ts index c4bb68c98b..0c382ea3b4 100644 --- a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulav2/formulaQueryBuilderv2.ts +++ b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/formulav2/formulaQueryBuilderv2.ts @@ -646,6 +646,11 @@ export default async function formulaQueryBuilderv2( type: 'CallExpression', arguments: [pt.left], }; + pt.right = { + callee: { name: 'FLOAT' }, + type: 'CallExpression', + arguments: [pt.right], + }; } pt.left.fnName = pt.left.fnName || 'ARITH'; pt.right.fnName = pt.right.fnName || 'ARITH'; diff --git a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/mysql.ts b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/mysql.ts index 9aedd96097..1419ca36e9 100644 --- a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/mysql.ts +++ b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/mysql.ts @@ -36,7 +36,7 @@ const mysql2 = { MID: 'SUBSTR', FLOAT: (args: MapFnArgs) => { return args.knex - .raw(`CAST(${args.fn(args.pt.arguments[0])} as DOUBLE)${args.colAlias}`) + .raw(`CAST(CAST(${args.fn(args.pt.arguments[0])} as CHAR) AS DOUBLE)${args.colAlias}`) .wrap('(', ')'); }, DATEADD: ({ fn, knex, pt, colAlias }: MapFnArgs) => {