Błąd podczas próby sumowania sum(czas_trwania)

0

Dzień dobry, może dla Was to banał, ale mam błąd przy próbie sumowania pola (datetime)
jak przekonwertować pole, żeby była możliwa suma?
Dziękuję za pomoc :)

screenshot-20220525145417.png

SELECT T.ID_KIEROWCY,
Sum(T.CZAS_TRWANIA) AS Sum_CZAS_TRWANIA
FROM T_TACHO_ZDARZENIA T
GROUP BY T.ID_KIEROWCY


Msg 8117, Level 16, State 1, Line 2
Operand data type datetime is invalid for sum operator.

2

Hm, datetime to nie jest perfekcyjny typ żeby trzymać czas trwania. Datetime jak nazwa wskazuje to data z czasem np piąty styczna 2020 godzina 17:00

Sprobuj to jakoś przekonwertować na liczne sekund czy milisekund a potem zsumować. Co to za baza?

2

Proponuję się zapoznać z taką funkcją: https://www.w3schools.com/sql/func_sqlserver_datediff.asp

KamilAdam napisał(a):

Co to za baza?

SQL server

1

Co trzymasz w takim polu? Dodawanie dat nie ma większego sensu. np. 2022-05-22 00:02:00 + 2022-06-22 00:01:00, tzn. że ma wyjść 3 rano listopad 2022 ?
Pokaż jak te dane wyglądają.

0
KamilAdam napisał(a):

Hm, datetime to nie jest perfekcyjny typ żeby trzymać czas trwania. Datetime jak nazwa wskazuje to data z czasem np piąty styczna 2020 godzina 17:00

Sprobuj to jakoś przekonwertować na liczne sekund czy milisekund a potem zsumować. Co to za baza?

Baza? masz na myśli typ? zwykła baza sqlowa. . 1000 tabel
screenshot-20220525153600.png

0

Pokaż jakie dane tam trzymasz i co chcesz z nich wyliczyć.

0

@S4t:
screenshot-20220525153713.png

wygłada tak:
screenshot-20220525154442.png

1

Nie wiem co gamoń projektował tę bazę ale można sprobować tak:

select sum(DATEDIFF(second, '1900/01/01 00:00:00', czas_trwania)) .... 

Nie testowane to mogą być jakieś błędy . Wynik będzie w sekundach.

3

skoro masz start i stop, to pwoinieneś policzyć różnicę w sekundach i tą różnicę sumować, bo ja nie wiem czego oczekujesz sumując np 22 maj 2022 z 23 majem 2022.
Wynik sumy odpowiednio sformatować.

Patrząc na Twoje zapytanie to powinieneś sumować:

 datediff(s,dataczas_od,dataczas_do) 

Samej kolumnie czas_trwania, która jest prawdopodobnie typu datetime bym nie ufał, bo co ona przechowa jak czas będzię większy niż 24 godziny?

1 użytkowników online, w tym zalogowanych: 0, gości: 1