здравствуйте. задача такая: есть таблица win (id, user, theme, stime, etime, sdate, edate). нужно высчитать сколько же потратил каждый пользователь времени на прохождение теста и выбрать минимальное. попробовал вот так: Код (PHP): SELECT *, MIN(etime-stime) AS time FROM win GROUP BY theme ORDER BY theme однако полученные цифры не совпадают с нужными: пользователь прошел тест за 54 секунды, а мой код выводит 10, и так у всех остальных. что я делаю не так? или же лучше было хранить время в формате unix и каждый раз переводить его?
в смысле что у тебя дата и время каждого события отдельно хранятся? можно было использовать одно поле с типом дата-время или да одно поле с юниксовой меткой времени.
отдельно.. а вообще правильный ли запрос? сделал время в unix формате и все равно при таком запросе выдает неверные цифры
Запрос точно неправильный, т.к. звёздочка в селект при груп-бай это нонсенс. Какой смысл каждого из полей? Что значит выражение в min() ?
ну пусть так, но я вижу там еще edate, sdate. это что, дата и время хранятся раздельно? там скорее всего полный адъ с типами. автор, покажи create table для этой таблицы.
у меня весь топик читать терпения не хватает. не настолько увлекательно ) ну ладно, ты его видимо хорошо понимаешь. автор, хранить дату и время вместе можно не только как время юникс. есть типы DATETIME и TIMESTAMP. они хорошо приспособлены для вычислений со временем: http://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html но если в твоей логике косяк, то переделка типов скорее всего не поможет.