select wg kolumn DATA CZAS

0

witam,
miałbym prośbę o podpowiedź jak zoptymalizować zapytanie do bazy SQL
mam tabelę z kolumnami DATA (yyyy-MM-dd) i CZAS (HHss)

chcę pobrać rekordy z pewnego przedziału czasowego (2010-10-10 1000 do 2010-10-15 1000)
stworzyłem zapytanie które działa jednak na pewno istnieje jakieś lepsze rozwiązanie

WHERE (DATA>2010-10-10 AND DATA<2010-10-15) OR (DATA=2010-10-10 AND GODZINA>1000)
OR (DATA=2010-10-15 AND GODZINA<1000)

dodam że wartości do zapytania muszę pobierać z DateTimePicker
proszę o jakąś optymalizację
z góry dziękuję

0

data i czas powinny być w jednej kolumnie

0

to, że powinny to nie wątpię ale taką bazę mam do dyspozycji

0

jaki SZBD?
aby to rozsądnie działało to powinieneś zrobić warunek mniej więcej tak

WHERE pole_data + pole_czas BETWEEN 2010-10-10 10:00:00 AND 2010-10-15 10:00:00

tylko najpierw pole z czasem trzeba zamienić na pole typu timestamp (czy podobne) a jak to zrobić to trzeba wiedzieć jaki SZBD. Aby to działało jako tako (czyt. używało indeksu) to baza musi umieć zakładać indeksy funkcyjne.

Możesz też spróbować założyć indeks tylko na polu z datą i zrobić warunek mniej więcej tak

(data = 2010-10-10 AND czas >= 10:00:00 OR data > 2010-10-10) AND (data = 2010-10-15 AND czas <= 10:00:00 OR data < 2010-10-15)

Twoje zapytanie nie zwróci Ci tego co oczekujesz (jeśli oczekujesz wyniku, który jest przedziałem czasowym z uwzględnieniem daty i czasu)

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