Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 03:09 17.05.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема TIME_FORMAT в MySQL  
Автор gonzales ()
Публикувано25.09.02 18:01



някой може ли да ми обясни защо следния израз вместо очаквания резултат връча НИЩО:

SELECT TIME_FORMAT(sum(duration),'%H:%i:%s') AS duration FROM logdata

където полето duration е от тип time



Тема Re: TIME_FORMAT в MySQLнови [re: gonzales]  
Автор salle (Един такъв)
Публикувано25.09.02 18:30



А какъв е "очаквания резултат" ?

SUM() връща тип integer TIME_FORMAT() иска тип TIME

SUM() не е дефинирано за тип TIME или по-точно казано като предаваш TIME на SUM() (а и на всички други функции) се преобразува първо до стринг а после до число и ......


На теб просто ти трябва комбинация от SEC_TO_TIME() и TIME_TO_SEC()

Пробвай:

SELECT SUM(duration) as StrangeSum, SUM(TIME_TO_SEC(duration)) as Seconds, SEC_TO_TIME(SUM(TIME_TO_SEC(duration))) as GoodSum FROM logdata;

Редактирано от salle на 25.09.02 18:46.



Тема Re: TIME_FORMAT в MySQLнови [re: salle]  
Автор gonzales ()
Публикувано26.09.02 13:42



ааа, ясно. а аз бях останал с впечатлението, че числото което връща SUM() е TIME във контекста на число.



Тема Re: TIME_FORMAT в MySQLнови [re: gonzales]  
Автор salle (Един такъв)
Публикувано26.09.02 17:18



А откъде си останал с такова впечатление????

Няма къде да го прочетеш а ако го пробваш ще видиш, че изобщо не прилича на часове минути и секунди.

Та въпросът ми е защо почваш питането си със "очаквания" резултат?

Откъде тези очаквания?

Наистина не разбирам.



Тема Re: TIME_FORMAT в MySQLнови [re: salle]  
Авторgonzales (Нерегистриран)
Публикувано26.09.02 19:29



ми стори ми се логично сумата от времена пак да е време и не си направих труда да проверя дали е така :-) а като получа четирицифрено число, реших че е време без разделителите, както MySQL представя дати и времена, когато прави с тях аритметични операции.



Тема Re: TIME_FORMAT в MySQLнови [re: gonzales]  
Автор salle (Един такъв)
Публикувано26.09.02 19:58



И да и не ....


Когато 19:43:56 се използва в цифров контекст се преобразува до 194356

Само, че това не е "аритметична операция" - това е резултат от "преобразуване на тип"

Правилото за преобразуване на Date/Time тип до число е да се махнат всички разделители. Причината е проста - полученото число може да се сравнява директно с =, !=, >, <

19:00:00 > 18:52:00 -> 1 защото 190000 > 185200

Сам разбираш обаче, че няма особен смисъл от аритметични операции върху тези две числа.

Така, че внимавай в какъв контекст използваш TIME (а и другите типове) като символен низ, Число или TIME

Демонстрация:

mysql> select curtime() as Type_TIME, curtime()+0 as Type_INT, concat(curtime()) as Type_CHAR, concat(curtime())+0 as Type_CHAR_to_INT;
+-----------+----------+-----------+------------------+
| Type_TIME | Type_INT | Type_CHAR | Type_CHAR_to_INT |
+-----------+----------+-----------+------------------+
| 19:50:14 | 195014 | 19:50:14 | 19 |
+-----------+----------+-----------+------------------+

Или иначе казано TIME 19:50:14 конвертирано до число е 195014, а CHAR '19:50:14' конвертирано до число е 19

Наздраве :)



Тема Re: TIME_FORMAT в MySQLнови [re: salle]  
Автор gonzales ()
Публикувано27.09.02 14:46



ммм да, част от това вече бях схванал, т.е. че 15:40:00=15:20:00+2000
както и да е, сега вече съм наясно и с времената => съм по-умничъъъъкккк :-)




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.