我正在尝试从node.js查询MSSQL,并且查询涉及日期。
我这样设置查询日期:
var datoen = new Date();
datoen.setHours(2,0,0,0);
首先-在我的服务器上,注销为: 2019-07-03T00:00:00.000Z
为什么它不注销为:2019-07-03T02:00:00.000Z?
无论如何-这不是真正的问题。这是我想要的第一个日期格式,它与数据库中的格式相同。
但是当我运行此查询(使用npm中的mssql)时:
request.query('select * from tblPriceRooms where
BarDate = ' + datoen, function (err, recordset) {
if (err) console.log(err)
res.send(recordset)
...服务器提供此错误->
info:
{ number: 102,
state: 1,
class: 15,
message: 'Incorrect syntax near \'Jul\'.',
serverName: 'SERVERNAME\\SQLEXPRESS',
procName: '',
lineNumber: 1,
name: 'ERROR',
event: 'errorMessage' } },
name: 'RequestError',
precedingErrors: [] }
我知道连接正常。只要我不尝试根据日期查询-我就会获得世界上所有的结果。
我是新手,约会有时会引起我的注意。任何指针将不胜感激!
答案 0 :(得分:1)
我建议对查询使用参数,这种方法会带来很多好处。这应该为您工作:
// Put whatever date you wish here..
const date = new Date();
date.setUTCHours(2, 0, 0, 0);
request.query('select * from tblPriceRooms where BarDate > @date', (err, result) => {
if (err) {
console.error("Error occurred: ", err);
} else {
console.info("Rows: ", result);
}
}).input('date', sql.DateTime, date); // Add the date parameter here