Marcin Wojna

Marcin Wojna specjalista ds. IT,
TLC Sp. z o.o. ,
ITnet24

Temat: Konwersja liczby na godzinę

w bazie mam zapisane godzinę w postaci liczbowej na godzinę w formacie 08:00
czyli. liczba z bazy to 420 i odpowiada to godzinie 07:00, liczba 330 odpowiada godzinie 05:30
jakich funkcji użyć aby otrzymać takie wyniki.

konto usunięte

Temat: Konwersja liczby na godzinę


Jeśli użytkujesz SQL Server, możesz poczynić taki skrypt

declare @time int
set @time = 330

select cast((@time / 60) as varchar(2)) + ':' + cast((@time % 60) as varchar(2))


w CR korzystając z podobnych operatorów uzyskasz rozwiązanie problemu. w CR zamiast % Mod - choć pewien nie jestem.

pzdr,
M
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Konwersja liczby na godzinę

Najprostszym rozwiązaniem w Crystal Reports jest zastosowanie funkcji TimeSerial.

składnia:
TimeSerial (hour, minute, second)

w miejscu godzin i sekund wstawiasz 0, natomiast w miejscu minut wstawiasz pole z liczbą minut.

Na przykład:
TimeSerial(0, {tabela1.CzasPracy}, 0)

W rezultacie otrzymujesz wartość typu Time
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Konwersja liczby na godzinę

Dopowiem jeszcze, że w funkcji TimeSerial ilość minut może być powyżej 60. Funkcja automatycznie przeliczy to na godziny. Zatem jeśli wstawisz do funkcji wartość minut na przykład na 330 to otrzymasz 5:30:00
Marcin Wojna

Marcin Wojna specjalista ds. IT,
TLC Sp. z o.o. ,
ITnet24

Temat: Konwersja liczby na godzinę

a co w przypadku jeśli wartość jest null
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Konwersja liczby na godzinę

To trzeba zrobić IFa i zastosować IF isnull(wartosc) then 'coś tam' z ewentualną konwersją jeżeli inna niż liczba.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Konwersja liczby na godzinę

A co u Ciebie oznacza wartość null? Jakaś konkretna godzina (np. północ) czy brak wartości? Co chcesz pokazywać w takim przypadku?
Marcin Wojna

Marcin Wojna specjalista ds. IT,
TLC Sp. z o.o. ,
ITnet24

Temat: Konwersja liczby na godzinę

chcę pokazywać 00:00 bo nie mam pracownika który by zaczynał lub kończył o tej godzinie.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Konwersja liczby na godzinę

W takim razie twoja kompletna formuła powinna wyglądać w ten sposób:

if isnull({tabela1.CzasPracy} then Time(0,0,0) else TimeSerial(0, {tabela1.CzasPracy}, 0)

Czyli jeśli jest wartość null to zwracamy północ, a w przeciwnym razie konwertujemy minuty na czas.

Następna dyskusja:

zamiana liczby na string




Wyślij zaproszenie do