I have to retrieve some data from database of previous 30 days from today.My query gives correct output in sqlyog as I am using Mysql. But in nodejs It gives me one day previous output.Like today is 4 august.It gives output in nodejs from 3 august to previous 30 days. Thank you .
Node.js Script
app.get('/chart_5_data', function (req, res) {
connection.query("SELECT COUNT(sms) AS sms, COUNT(DISTINCT(msisdn)) AS USER, DATE(DATETIME) AS DATE FROM mt_log WHERE (STATUS = 'Charge Success') AND (DATE(DATETIME) BETWEEN (CURDATE() - INTERVAL 30 DAY ) AND CURDATE()) GROUP BY (SELECT EXTRACT(DAY FROM DATETIME)) ORDER BY DATETIME ASC", function (error, results, fields) {
if (error) throwerror;
var data=JSON.parse(JSON.stringify(results));
console.log(data);
//console.log(data);
res.send(data);
});
});
Sql Query In sqlyog
SELECT COUNT(sms) AS sms, COUNT(DISTINCT(msisdn)) AS USER, DATE(DATETIME) AS DATE FROM mt_log WHERE (STATUS = 'Charge Success') AND (DATE(DATETIME) BETWEEN (CURDATE() - INTERVAL 30 DAY ) AND CURDATE()) GROUP BY (SELECT EXTRACT(DAY FROM DATETIME)) ORDER BY DATETIME DESC
EDIT:
Both Node.js and SQLyog return SYSTEM
if I execute SELECT @@session.time_zone;
CURRENT_DATE()
gives output in sqlyog 4 august, but in nodejs it gives 3 august.