【发布时间】:2017-12-29 06:25:19
【问题描述】:
我想使用 BETWEEN 子句从 MySql 数据库中获取数据。
在客户端,我使用 JQuery 创建了 2 个内联日历,并使用 socket.io 发出选定的 date 值;
$('#fromDate').datepicker({
inline: true,
altField: '#d',
dateFormat: "dd-mm-yy",
altFormat: "yy-mm-dd",
monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
dayNamesMin: ["Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct"],
firstDay: 1,
numberOfMonths: 1,
onSelect: function(dateText, inst) {
var dateAsString = dateText; //the first parameter of this function
var dateAsObject = $(this).datepicker('getDate'); //the getDate method
console.log(dateAsString);
socket.emit('socketfromDate', $('#d').val());
}
});
$('#toDate').datepicker({
inline: true,
altField: '#x',
dateFormat: "dd-mm-yy",
altFormat: "yy-mm-dd",
monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
dayNamesMin: ["Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct"],
firstDay: 1,
numberOfMonths: 1,
onSelect: function(dateText, inst) {
var dateAsString = dateText; //the first parameter of this function
var dateAsObject = $(this).datepicker('getDate'); //the getDate method
console.log(dateAsString);
socket.emit('sockettoDate', $('#x').val());
}
});
在服务器端,如果我在 'fromDate' 值之后收到 'toDate' 值,MySql 查询必须在这几天之间获取数据。
var fromDate_query,
toDate_query;
io.on('connection', function(socket) {
socket.on('socketfromDate', function(fromDate) {
console.log();
console.log("----------------------------------");
console.log("Selected dateTime 'from': " + fromDate); //output: Selected dateTime 'from': 2017-07-01
console.log("----------------------------------");
console.log();
fromDate_query = fromDate;
});
socket.on('sockettoDate', function(toDate) {
console.log();
console.log("----------------------------------");
console.log("Selected dateTime 'to': " + toDate); //output: Selected dateTime 'to': 2017-07-13
console.log("----------------------------------");
console.log();
toDate_query = toDate;
connection.query("SELECT * FROM report WHERE date BETWEEN ? AND ?", [fromDate_query, toDate_query], function(err, rows) {
if (err) console.log(err);
else {
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
console.log("**********************************");
console.log("Possible machine: " + row.machine); //output: nothing
console.log("**********************************");
}
}
});
});
});
问题是,什么都没有发生。
两天之间查询的最佳方法是什么?
【问题讨论】:
标签: javascript jquery mysql node.js socket.io