BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 01 ноя 2024, 09:34

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: 02 мар 2011, 03:34 
понадобилось мне написать некий код под веб для сбора и отображения статистики, и столкнулся с траблой.
Код:
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?

з.ы. читал форумы разные, в том числе по мускулю, народ недоволен, пишет девелоперам об этом "баге", а те игнорят. :facepalm:


Вернуться к началу
  
 
СообщениеДобавлено: 02 мар 2011, 16:53 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4493
Откуда: Уфа, Россия
Карма: 187
может так:

Код:
select @a:=6519214, concat(floor(@a / 3600),":",floor((@a mod 3600)/60),":",@a mod 60)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.038s | 20 Queries | GZIP : On ]