这是我的代码:
const result = await connection.query("INSERT INTO myTable ([ID],[ClassId],[Active],
[LastUpdateDateTime],[LastUpdateUser],[Number],[ExternalId],
[MaterialDefinitionId],[CompanyId],[IsBlanket],[Type],[Subtype],
[CreatedDate],[ValidFromDate],[ValidToDate],[OrderedQuantity],
[DeliveredQuantity],[ReservedQuantity],[UnitOfMeasurement],[Status],[Note])
VALUES (?,?,?,CONVERT(DATETIME, ? , 102),?,?,?,?,?,?,?,
?,CONVERT(DATETIME, ? , 102),CONVERT(DATETIME, ?, 102),
CONVERT(DATETIME, ? , 102),?,?,?,?,?,?)" ,
['100000061', 'Order' , 1,
'2020-01-01 11:11:11' , 'xxx' , 123 , '9901177998' , '100000003' ,
'100000012' , 0 , 'xxx', 'xxx', '2020-01-01 11:11:11' ,
'2020-01-01 11:11:11' , '2020-01-01 11:11:11' , 2000.0 ,
0.0 , 0.0, 'xxx' , 'Created' , 'xxx']);
我正在尝试插入时间,但出现此错误: RequestError:“?”附近的语法不正确。
有人知道解决方案吗?
谢谢!
答案 0 :(得分:0)
您需要在connection.query
函数中使用一个数组作为参数来设置值。您可能只设置第一个。
检查:https://www.mysqltutorial.org/mysql-nodejs/insert/
它看起来应该像这样:
let stmt = `INSERT INTO todos(title,completed)
VALUES(?,?)`;
let todo = ['Insert a new row with placeholders', false];
// execute the insert statment
connection.query(stmt, todo, (err, results, fields) => {
if (err) {
return console.error(err.message);
}
// get inserted id
console.log('Todo Id:' + results.insertId);
});
在您的情况下,您应该尝试:
const result = await connection.query("INSERT INTO myTable ([ID],[LastUpdateDateTime]) VALUES (? , CONVERT(DATETIME, ? , 102))", [1, '2020-01-01']);