无法使用带有Node.js的npm mssql将浮点值存储到sql服务器
我试图做简单的更新查询和存储百分比值,这将是在我的sql服务器数据库中的types为float的百分比列中。
当我这样做:
var percentage = 3.1415; const updateAttendence = await sql.query `UPDATE Attendence SET percentage = ${ percentage } WHERE session_id = ${ parseInt( req.body.session ) } AND student_id = ${ parseInt( req.body.AttendanceData[i].id ) } `;
我在我的数据库中得到这个
当我这样做 – 取代percentage = ${ percentage }
percentage = 3.1415
const updateAttendence = await sql.query `UPDATE Attendence SET percentage = 3.1415 WHERE session_id = 1 AND student_id = 1 `
我得到我想要的 percentage = ${ percentage }
我不明白它为什么不按照它所想的那样工作。 这只是我或任何其他人有这个问题,有什么解决这样一个简单的事情成为一个问题(至less对我来说)。
-谢谢
这似乎是node-mssql
中的一个错误,假定数值是Ints。 您可以使用.input
方法将值指定为其他值,但是不能使用带标签的模板文字。
const updateAttendence = await pool.request() .input('percentage', sql.Float, percentage) .input('session_id', sql.Int, req.body.session) .input('student_id', sql.Int, req.body.AttendanceData[i].id) .query(`UPDATE Attendence SET percentage = @percentage WHERE session_id = @session_id AND student_id = @student_id`);