我正在向数据库请求bigint,但是Node.js改变了我的请求值,所以我的程序无法运行。
下面是我的代码:
let query = `SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;`
sql.query(query, function(err, result){
if(err) throw err;
console.log(result);
}
控制台记录:
[ RowDataPacket { transcriptchannel: 946134226196123600 } ]
但是,如果我在PHPmyAdmin中运行相同的语句,它将如下所示:
SELECT transcriptchannel FROM guilds WHERE guild_id = 933323734322913301;
它将返回:
946134226196123658
为什么Node.JS会将值向上舍入?我该如何防止它?
1条答案
按热度按时间vojdkbi01#
当数字大于
Number.MAX_SAFE_INTEGER
时,会发生这种情况。请尝试以下操作,查看是否获得预期值:
参考-https://github.com/mysqljs/mysql