понадобилось мне написать некий код под веб для сбора и отображения статистики, и столкнулся с траблой.
Код:
mysql> select sec_to_time(sum(session_time)) from log_session_3_201102;
+--------------------------------+
| sec_to_time(sum(session_time)) |
+--------------------------------+
| 838:59:59 |
+--------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+-------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '6519214' |
+---------+------+-------------------------------------------+
1 row in set (0.00 sec)
пробуем на 4.1.22 версии:
Код:
mysql> select sec_to_time(sum(6519214));
+---------------------------+
| sec_to_time(sum(6519214)) |
+---------------------------+
| 1810:53:34 |
+---------------------------+
1 row in set (0.00 sec)
смотрим объяснение по мускулю начиная с 5й версии:
Код:
Величины, лежащие вне разрешенного интервала TIME, но во всем остальном представляющие собой допустимые значения, усекаются до соответствующей граничной точки данного интервала. Например, величины '-850:00:00' и '850:00:00' преобразуются соответственно в '-838:59:59' и '838:59:59'.
ну и собственно вопрос - как обойти это дурацкое ограничение?
или как можно сделать одним запросом, что бы была замена функции sec_to_time?
з.ы. читал форумы разные, в том числе по мускулю, народ недоволен, пишет девелоперам об этом "баге", а те игнорят.