Node.js mysql查询语法来检索
我正在使用MySQL nomj的nodejs来检索date。 目前select * from table
工作正常,但如果我想查询数据库和检索2个值之间的date它不工作。
节点代码是
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
我构build这个查询,它不工作。
*file_ts*
不是有效的SQL; 也没有可能只是将未加引号的date放入查询中。 使用参数绑定; 它也将保护你免受鲍比表 。
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
使其易于理解。