我使用带有MySQL nom的nodejs来检索日期。
当前select * from table
工作正常,但如果我想查询数据库并检索2个值之间的日期,则无效。
节点代码是
app.get('/api',function(req,res)
{
var startDate = req.param('startDate');
var endDate = req.param('endDate');
var sqlQuery =null;
var message ={};
message.status=false;
log("Params Found Changing SQL Queries For Start And End Date");
sqlQuery ="SELECT * from sentiment_data where *file_ts* >= "+startDate+" and *file_ts* <= "+endDate+" order by file_ts";
log(sqlQuery);
if(user.isDB)
{
connection.query(sqlQuery, function(err, rows, fields)
{
if (!err)
{
message = rows;
res.send(message);
}
});
}
else
{
log("DB Error");
}
});
我在使用开始时间和结束时间构建它时执行的SQL语句是
SELECT * from sentiment_data
where *file_ts* >= "+startDate+"
and *file_ts* <= "+endDate+"
order by file_ts
我正在构建此查询,但它无法正常工作。
答案 0 :(得分:2)
*file_ts*
无效SQL;也不可能只将一个不带引号的日期存入查询。使用参数绑定;它还可以保护您免受Bobby Tables。
var sqlQuery = "SELECT * FROM sentiment_data WHERE file_ts >= ? AND file_ts <= ? ORDER BY file_ts";
// ...
connection.query(sqlQuery, [startDate, endDate], function(err, results) {
// ...
});
根据startDate
和endDate
中的内容,您可能需要使用Date.parse
来使其易于理解。