如何将node.jsdate转换为SQL Server兼容的date时间?

我有一个Web API使用快速繁琐的一些数据存储在Azure SQL数据库。 使用nvarchartypes和inttypes它工作得很好,但是当我尝试保存DateTime值时,我收到一条错误消息:

 Insert into Proxy (Ip, RequisitionDate) values ('1', '2016-05-18 3:32:21' ) 

错误:

RequestError:参数'RequisitionDate'的validation失败。 date无效。] message:'validation失败,参数'RequisitionDate \'。 date无效。',code:'EPARAM'}

那么有趣的是

 Insert into Proxy (Ip, RequisitionDate) values ('1', '2016-05-18 3:32:21') 

是我在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); } 

如果我直接在SqlManager Studio上执行查询,它工作正常。

看来你没有在addParameter函数中设置正确的datetime值。 根据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); } 

任何进一步的关注,请随时让我知道。