gog*_*gog 4 sql-server azure node.js tedious
我有一个使用Express和Tedious的Web Api 在Azure SQL数据库上存储一些数据。使用nvarchar
类型和int
类型可以很好地工作,但是当我尝试保存DateTime
值时,我收到一条错误消息:
Insert into Proxy (Ip, RequisitionDate)
values ('1', '2016-05-18 3:32:21' )
Run Code Online (Sandbox Code Playgroud)
错误:
RequestError:参数'RequisitionDate'的验证失败。日期无效。]消息:“参数\'RequisitionDate \'的验证失败。日期无效。”,代码:“ EPARAM”}
好吧,有趣的是
Insert into Proxy (Ip, RequisitionDate)
values ('1', '2016-05-18 3:32:21')
Run Code Online (Sandbox Code Playgroud)
是我在node.js api中执行的查询:
var query = "Insert into Proxy (Ip,RequisitionDate) values ( '"+ ip + "', '"+ date + "' )";
console.log(query); // Insert into Proxy (Ip,RequisitionDate) values ( '1', '2016-05-18 3:32:21' )
request = new Request(query, function(err) {
if (err) {
console.log(err);}
});
request.addParameter('Ip', TYPES.NVarChar,'SQL Server Express 2014');
request.addParameter('RequisitionDate', TYPES.DateTime , 'SQLEXPRESS2014');
connection.execSql(request);
}
Run Code Online (Sandbox Code Playgroud)
如果我直接在SqlManager Studio上执行查询,则可以正常运行。
似乎您尚未datetime
在addParameter
函数中设置正确的值。根据API参考,该函数用作request.addParameter(name, type, value, [options])
。
请尝试以下代码:
var query = "Insert into Proxy (Ip,RequisitionDate) values ( @ip , @date)";
request = new Request(query, function(err) {
if (err) {
console.log(err);}
});
request.addParameter('ip', TYPES.NVarChar,'<ip value>');
request.addParameter('date', TYPES.DateTime , new Date());
// or the set the special date, refer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
// request.addParameter('RequisitionDate', TYPES.DateTime , new Date(2016,05,19,3,32,21))
connection.execSql(request);
}
Run Code Online (Sandbox Code Playgroud)
如有任何其他疑问,请随时告诉我。
归档时间: |
|
查看次数: |
6912 次 |
最近记录: |