我有一个SQL查询,使用客户的card_number
返回客户的交易标头。 SQL查询将返回名为audit_number
的列。问题是当我使用SSMS软件执行SQL查询时,查询返回正确的结果,但是当我在Node JS脚本上执行查询时,某些audit_number
错误。
audit_number
应该是14111990000015953和14111990000015952,但是当我在我的NODE JS脚本中执行查询时,两个audit_number
都变成了[[14111990000015952。
这是我的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位,那么它将为您提供一些随机数。因此,要获得准确的结果,应将数据类型从数字更改为字符串。
For example if you check number
Number(1111111111111111)
Result is 1111111111111111
But if you put Number(11111111111111111)
then result will be 11111111111111112 something