Paradox_zaokrąglanie godziny

0

Witam,
mam bazę zbudowana na tabelach Paradox 5.0 Borlanda
Jest tabela (Bilans), w której mam kolumnę godzina (typ ALPHA).

Chciałbym z tej tabeli pobrać do datagridview godzinę ale zaokrągloną do połówek/pełnych w zalezności czy został przekroczony kwadrans
mianowicie:
pełna godzina...15min ->pełna godzina:00min
15min...30min -> pełna godzina:30min
30min...45min -> pełna godzina:30min
45min...kolejna godzina -> kolejna godzina:00min
żródło-> wynik
07:05->07:00
07:16->07:30
07:42->07:30
07:46->08:00
08:15->08:30
itd.

niestety na tej bazie trudno wykonywać kwarendy SQL (zagnieżdżone zazwyczaj nie działają)
myślę o LINQtoDataSet

liczę na podpowiedzi z Waszej strony

Dziękuję

0

Minuty dzielisz przez 30 zaokrąglasz do całości i mnożysz przez 30.
Zastanów się nad tym czy poprawnie dałeś typ Alpha

0

niestety bazę taką dostałem do integracji i nie mam na nią wpływu

czy da się te operacie wykonać za pomocą zapytania T-SQL czy muszę każdą komórkę jakimś foreach-em potraktować

0

Oczywiście że się da, wycinasz fragment pola konwertujesz na liczbę i dalej jak napisałem wyżej.

0

niestety moja wiedza nie pozwala na skonstruowanie zapytania
dlatego wykombinowałem coś takiego
pobieram rekordy, zapisuję do DataTable i forechem modyfikuję wartości

np. dla GODZINA[ALPHA] = 08:10

decimal zaokraglenieDo = 30;
decimal minuty = (Convert.ToDecimal(rowdtBilansCzasuPracy["GODZINA"].ToString().Substring(3, 2))) * 60 + (Convert.ToDecimal(rowdtBilansCzasuPracy["GODZINA"].ToString().Substring(6, 2))); //przerabiam GODZINA na minuty
decimal BilansMinuty = Math.Round((minuty) / zaokraglenieDo) * zaokraglenieDo; //dzielę i mnożę wg podpowiedzi Dragona
string BilansHH_mm = string.Format("{0:D2}", (int)(BilansMinuty / 60)) + ":" + string.Format("{0:D2}", (int)(BilansMinuty % 60)); //=08:00

niby OK, ale czy to dobry pomysł?
wydaje mi się, że strasznie pamięciożerne i długo by trwało takie obliczanie przy 100 000 rekordach (bo tyle będę miał max)
proszę o dodatkowe sugestie

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