Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Suma godzin w kolumnie TIME
8_pasarzer_NOSTR...
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


Witam

mam w bazie danych kolumnę o wartości TIME, a w niej następujące wartości.

01:00:00
00:10:00
00:10:00


Jak pobrać sumę tych godzin by uzyskać wynik 01:20:00. Bo próbuje i za chiny ludowe nie idzie.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




http://stackoverflow.com/questions/3054123...-time-using-sql
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


@ nospor
Dzięki wielkie kolego. Na Ciebie zawsze można liczyć. Będziesz kiedyś w Legnicy i będzie problem z Panami w mundurze to daj znać.
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




A co, tak rozrabiaja ci w mundurze tam? (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #5





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


Witam, musiałem tu wrócić.

Zsumowałem godziny z pola TIME.

  1. $zapytanie = "SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(ile_konwoj))) as suma FROM sklad";
  2. $wykonaj=mysql_query($zapytanie);
  3. $wynik=mysql_fetch_assoc($wykonaj);
  4. $il_godz = $wynik['suma'];


Ale problem mam taki, że wyników jest tak dużo, że za każdym razem wydaje mi wynik 838:59:59. Czyli max chyba dla tego rodzaju pola. Jak to obejść i zliczyć więcej ?

Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/1373314...imit-of-8385959
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




https://dev.mysql.com/doc/refman/5.5/en/time.html
Tak, przekroczyles zakres

A nie mozesz sobie tego obrobic w php i wyswietlic jak ci sie podoba? W sensie z mysql pobieraj tylko sekundy bez formatowania ich do TIME
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #8





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


Jeszcze raz proszę o pomoc. Tak jak pisał nospor pobrałem wszystko jako sekundy do jednej tablicy.

  1. $zapytanie = "SELECT TIME_TO_SEC(ile_konwoj) FROM sklad";
  2. $wykonaj = mysql_query($zapytanie) or die ("Błąd = 115<br> ".mysql_error());
  3. while($wiersz = mysql_fetch_array($wykonaj))
  4. {$ile_godz[]=$wiersz['0'];}
  5. if(isset($ile_godz)){$suma_godz=array_sum($ile_godz);}


Po zsumowaniu elementów tablicy wyszło mi 56623200 sekund. W jaki sposób zamienić to na ilość godzin i minut.
Winno być coś koło 15728:XX:XX

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Zamieniłem wiec podaje gotowe rozwiązanie :

  1. $ile_godz='56623200';
  2. if(isset($ile_godz))
  3. {$suma_godz=array_sum($ile_godz);
  4. $czas = round($suma_godz);
  5. echo $il_godz = sprintf('%02d:%02d', ($czas/3600),($czas/60%60));}


Dziękuje wszystkim.


Ten post edytował 8_pasarzer_NOSTROMO 31.08.2016, 13:06:22
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Sumowanie miales zostawic w zapytaniu mysql. Jedyne co miales zrobic to nie zamieniac potem tego sumowania w mysql na czas.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.09.2025 - 22:19