我们正在将MSSQL模块与Node.js一起使用。
我正在运行以下查询:
SELECT AVG((RAT_VALUE * 1.0)) FROM RAT WHERE RAT_PER_ID_FROM IS NOT NULL AND RAT_PER_ID_ABOUT = 139 AND RAT_USE = 'Y' AND RAT_ABOUT_ROLE = 'RS' AND RAT_DATE_INSERTED >= '10/1/2018' AND RAT_DATE_INSERTED < '10/1/2019'
如果我直接对数据库运行此命令,它将返回:
4.45
MSSQL的输出是:
4 返回的确切结果集是:
results { recordsets: [ [ [Object] ] ],
recordset: [ { '': 4 } ],
output: {},
rowsAffected: [ 1 ] }
换句话说,MSSQL总是返回值4,而不是4.45。
数据库中的列类型od RAT_VALUE为INT,但我尝试将其更改为DECIMAL(5,2),但没有任何运气。
我尝试从查询中显式返回DECIMAL:
SELECT CAST(AVG((RAT_VALUE * 1.0)) AS DECIMAL(5, 2)) ...
但那里也没有运气。
似乎MSSQL只是剪切和删除任何数字的小数部分,甚至是十进制类型的数字。
我什至在数据库中将值设置为4.75并直接返回,但仍返回4。
那里有什么主意吗?