[T-SQL] Nie wyszukuje wszystkich rekordów przez zapytanie


(Czajo) #1

Witam. Stworzyłem sobie niewielką bazę danych, wszystko ładnie pięknie działa. Mam problem z zapytaniem, ponieważ nie wyszukuje mi wszystkich rekordów jakie powinien.
Zapytanie wygląda tak: http://wklej.org/hash/f453bb3bbf8/
Format a.godzina jest ustawiona na varchar(30). Nie wyszukuje mi rekordów, które mają godzinę od 00:00 do 6:00, mimo, że takie rekordy w bazie istnieją. Godziny od 06:00 do 14:00 i od 14:00 do 22:00 działają wyśmienicie. Co mogłem skopać?


(hindus) #2

A czemu w ogóle trzymasz godziny jako string? Nie lepiej int? Nie możesz na nich wykonywać operacji arytmetycznych…


(elieli) #3

Nie mam pod ręką MSSQLa teraz żeby Ci to sprawdzić.Nie zepsułeś czegoś w części tego warunku z funkcjami daty: a.dataPoczatkowa >= DATEADD(DAY, DATEDIFF(day, 0, GETDATE()), 0)
?


(mr-owl) #4

A jestes pewien ze operator >= dziala tak jak oczekujesz na typie varchar? Moze obie strony trzeba przekonwertowac do wlasciwego typu?

Pozdrawiam,

mr-owl