Я использую запрос MySQL для получения диапазона дат и времени в качестве метки времени Unix (потому что я буду конвертировать их во время Javascript).Я группирую по «FROM_UNIXTIME», как показано ниже:
SELECT
UNIX_TIMESTAMP(DateAndTime) as x,
Sum(If(Pass='Pass',1,0)) AS y,
Sum(If(Pass='Fail',1,0)) AS z,
Sum(If(Pass='Fail',1,0))/(Sum(If(Pass='Pass',1,0))+Sum(If(Pass='Fail',1,0))) AS a,
cases.primaryApp
FROM casehistory, cases
WHERE DATE_SUB(CURDATE(),INTERVAL 80 DAY) <= DateAndTime
AND cases.caseNumber = casehistory.caseNumber
AND cases.primaryApp = 'Promo'
GROUP BY FROM_UNIXTIME(x, '%Y-%m-%d')
Хотя я ожидал, что мои временные метки будут возвращаться равномерно (то есть, такое же количество времени между каждым днем / группой), я получаюследующие серии:
1300488140, 1300501520, 1300625099, 1300699980
Все остальные данные из запроса верны, но из-за того, что интервал между временными метками является нерегулярным, столбецДиаграмма на основе этих марок выглядит довольно ужасно.Возможно, я делаю что-то не так, применяя группировку?
Спасибо за ответ.Мой запрос «имел смысл» в том смысле, что он выдал то, что можно было построить на графике (группировка была выполнена по псевдониму x для значения dateandtime), но проблема заключалась в том, что при извлечении метки времени Unix из базы данных и группировке по дням возвращался ряд меток временимежду которыми не было равного расстояния.
Я решил эту проблему, вытянув только день (без времени) из поля MySQL datetime, затем - в PHP - конкатенировал пустое время с датой и преобразовал полученное значение.строка на время, затем умножение всего shebang на 1000, чтобы вернуть время Javascript, необходимое для построения диаграммы, например:
x = x . ' 00:00:00';
x = strtotime(x) * 1000;
Ответ поставил меня на правильный путь;Я приму это.Теперь моя диаграмма выглядит идеально.