我要执行以下操作
从mysql的开始〜start + 30选择信息
信息包含日期信息 然后从我要更新的信息开始+ 30。
我有问题。问题是当我在循环中执行查询功能时,它无法同步。
这是我的代码。
var jdate = new Array(); //string data compare for date mysql -> javascript
for (var i = 0; i < 2; i++) {
jdate[i] = new Date();
}
var date = new Array(); //string data use in sql pure mysql data
var sql = "SELECT jobEndDt,jobData FROM Table WHERE jobEndDt is not null AND jobEndDt BETWEEN \"2016-06-2 00:00:00\" AND date_add(\"2016-06-2 00:00:00\",interval 30 day) ORDER BY jobEndDt";
for (; jdate[0].getDate() + 30 <= jdate[1];) {
connection.query(sql, function(err, rows, fields) {
date[0] = rows[0].jobEndDt;
date[1] = rows[rows.length - 1].jobEndDt;
if (err) throw err;
console.log("Before__Date : " + date[0] + " " + date[1]); //!!
console.log("Before__sql : " + sql); //update ok..
console.log('get data from server ' + rows.length);
for (var i = 0; i < rows.length; i++) {
var nd = new Mysql();
nd.jobData = rows[i].jobData;
nd.save();
}
console.log("save seq end " + rows.length);
jdate[0] = new Date(date[0]);
jdate[1] = new Date(date[1]);
date[1] = dtosql(date[1]); // convert mysqldate to yyyy-mm-dd
sql = "SELECT jobEndDt,jobData FROM Table WHERE jobEndDt is not null AND jobEndDt BETWEEN " + date[1] + " AND date_add(" + date[1] + ",interval 30 day) ORDER BY jobEndDt";
console.log("After__sql : " + sql);
});
}
这是结果
Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT) Before__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-2 00:00:00”和date_add(“ 2016-06-2 00:00:00”,间隔30天)之间进行排序jobEndDt 从服务器189获取数据
保存序列结尾189 After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt
Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT) Before__sql:选择jobEndDt,表中的jobData WHERE jobEndDt不为空且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt 从服务器189获取数据
保存序列结尾189 After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt
Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT) 在__sql之前:SELECT jobEndDt,表中的jobData WHERE jobEndDt不为空且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt 从服务器189获取数据
保存序列结尾189 After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt
程序继续执行此结果。