![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam w tabeli kolumnę z czasem, pole typu TIME. I teraz chciałbym otrzymać czas całkowity z całej kolumny więc robię odpowiedniego selecta z opcją SUM(). Otrzymuję jednak nieco dziwny wynik, który wartości zapisane w formacie 00:00:00 zlewa w jedną całość... Wartości do zsumowania jest dosyć sporo więc posłużę się ekstremalnym przypadkiem sumowania dwóch czasów maksymalnych dla pola time, czyli 838:59:59 (HH:MM:SS) 838:59:59 + 838:59:59 = 1677:59:58 Dostaje jednak wynik typu 16771918 Najprościej byłoby zapytać czy istnieje jakaś funkcja, która by mi ten wynik rozbiła na poszczególne wartości godzin, minut i sekund. Ale niestety nic nie wyguglałem więc chyba trzeba to samemu obrobić... Wyciągam więc ilość cyfr z otrzymanego wyniku za pomocą strlen() żeby wiedzieć jakie wartości zastosować w substr(), którą następnie wyciągam odpowiednie składniki czasu
i w tym przypadku otrzymuję wynik typu 1677:19:18 czyli prawie, prawie ale jednak jak widać minuty i sekundy są pomniejszone o 40 ponieważ sumowanie w mysql odejmuje wartości nie od 60 a od 100 i tu powstaje różnica... Jeśli ktoś z Was wie jak to ugryźć, niekoniecznie moim sposobem to proszę o jakąś podpowiedź bo jak narazie jestem w kropce...:/ Pozdrawiam, Ł. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Może pomoże ci FROM_UNIXTIME. Dopuszcza formatowanie.
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tylko w jakim sensie użyć tej funkcji... Zliczyć ile sekund minęło od godziny "0" i to konwertować...? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 3 Dołączył: 18.10.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
może spróbuj po stronie mysql tam są dwie fajne funkcje
time_to_sec to chyba w twoim przypadku i sec_to_time trochę trzeba pokombinować, ale w końcu całkiem nieźle sobie radzą w takim przypadku. np w taki sposób:
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 11:22 |