gpt4 book ai didi

sql - MSSQL 在 SSMS 和 Node JS 脚本中返回不同的结果

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:40 25 4
gpt4 key购买 nike

我有一个 SQL 查询,使用客户的card_number 返回客户的交易 header 。 SQL 查询将返回一个名为 audit_number 的列。问题是,当我使用 SSMS 软件执行 SQL 查询时,查询会返回正确的结果,但是当我在 Node JS 脚本上执行查询时,某些 audit_number 是错误的。

audit_number

audit_number 应该是 1411199000001595314111990000015952,但是当我在 NODE JS 脚本中执行查询时,audit_number 都变成 14111990000015952

audit_number_2

这是我的sql查询

SELECT
h.Log_trxdate AS trx_date,
CAST(h.log_audit AS varchar) AS audit_number,
h.currency_code
FROM log_header h
WHERE h.id_code = '10000010055919' --card_number

这是我的 Node JS 脚本

var querySQL = " SELECT  ";
querySQL = querySQL + " h.Log_trxdate AS trx_date, ";
querySQL = querySQL + " CAST(h.log_audit AS varchar) AS audit_number, ";
querySQL = querySQL + " FROM log_header h ";
querySQL = querySQL + " WHERE h.id_code = 10000010055919 ";

sql.connect(config, function (err) {
var req = new sql.Request();
req.query(querySQL, function (err, result) {
console.log(result);
});
});

最佳答案

您需要将数据类型 number 更改为 varchar/text,因为在 javascript 中,如果数字长度超过 16 位,那么它会给您一些随机数。

So to get exact result you should change your Datatype from number to string.

For example if you check number
Number(1111111111111111)//16 digits

Result is 1111111111111111

But if you put Number(11111111111111111)//17 digits
then result will be 11111111111111112 something

关于sql - MSSQL 在 SSMS 和 Node JS 脚本中返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58285100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com