我有一个存储十进制值的MySQL数据库(DECIMAL(32,12))。 当我使用HeidiSQL选择值时,值正确显示(例如15922.638440778302)。但是当我使用MySQL绑定(https://github.com/mysqljs/mysql)在NodeJS中执行相同操作时,它显示15922.63844077830 3 。
我的SQL查询非常简单:
SELECT SUM(`amount`) FROM `balances`;
知道什么会导致差异吗?也许我需要在NodeJS中的MySQL初始化期间指定精度?目前,我没有指定登录凭据以外的任何内容:
let mysql = require('mysql').createPool({
host: global.dbconfig['dbhost'],
database: global.dbconfig['dbname'],
user: global.dbconfig['dbuser'],
password: global.dbconfig['dbpass']
})
答案 0 :(得分:3)
在mysql
配置中添加以下行。
supportBigNumbers: true
bigNumberStrings: true
然后它变成:
let mysql = require('mysql').createPool({
host: global.dbconfig['dbhost'],
database: global.dbconfig['dbname'],
user: global.dbconfig['dbuser'],
password: global.dbconfig['dbpass'],
supportBigNumbers: true,
bigNumberStrings: true,
})
有关连接选项的更多信息:docs