Hej
Czy mogę bez łączenia kolumn zapytać o zakres dokumentów mieszczący się w dacie i godzinie np. 21/11/2018 06:00
do 27/11/2018 14:00
kiedy data i godzina są w osobnych kolumnach.
Twój opis jest niestety dosyć niejasny - mógłbyś podać jakieś przykłady?
W tym zapytaniu filtruję tylko datę a chciałbym też godzinę bez łączenia kolumn
Podejrzewam, że tak, ale jak pisał @Patryk27, dobrze by było jakbyś dał więcej szczegółów.
Zakładam, że pytasz o SQL - w takim razie musisz połączyć kilka warunków operatorem AND - https://www.w3schools.com/sql/sql_and_or.asp.
Zakładam też, że nie pomieszałeś pojęcia "kolumny" z "tabelą" - czyli informacje o których piszesz są rzeczywiście w różnych kolumnach TEJ SAMEJ tabeli. W takim wypadku piszesz zapytanie w stylu
SELECT * FROM tabela WHERE DATA BETWEEN data_od AND data_do AND CASE WHEN DATA=data_od THEN godzina>godzina_od END AND CASE WHEN DATA=data_do THEN godzina<godzina_do END
Oczywiście to jest tylko przykład ilustrujący sposób tworzenia zapytania, a nie realne zapytanie, chodzi o pokazanie zasady.
Można też użyć operatora BETWEEN, aczkolwiek nie jestem pewien, czy wszystkie silniki go obsługują - https://www.postgresql.org/docs/9.1/functions-comparison.html lub https://www.w3schools.com/sql/sql_between.asp
EDIT
podany przeze mnie przykład był nieprawidłowy, więc żeby nie wprowadzać w błąd - poprawiłem go. Treść widoczna powyżej jest skopiowana z wpisu 2 posty niżej by @Marcin.Miga i to jemu się należy chwała :D
Twoje zapytanie pokaże mi dokumenty w godzinach od 06:00 do 14:00 w dniach 21/11/2018 do 27/11/2018.
W dniu 22/11/2018 nie będzie dokumentów z godz.15:00.
Generalnie chodzi o okres od do uwzględniający godzinę startu i końca
Można, ale po co sobie utrudniać. To nie bedą proste zapytania...
Coś w stylu:
SELECT * FROM tabela where data BETWEEN data_od AND data_do AND case when data=data_od then godzina>godzina_od END and case when data=data_do then godzina<godzina_do END
Chciałbym to w SAP B1 wykorzystać do pracy zmianowej, można łatwo przeszukiwać
Jednak coś mi nie poszło
żeby sprecyzować - chodzi Ci o osobno wyszukiwanie zakres dat i osobno zakres godzin? Czyli np. dane księgowane od 01.01.2000 do 07.01.2000 ale w godzinach od 8:00 do 16:00 czy chcesz wyszukać dane zaczynając od 01.01.2000 8:00 do 07.01.2000 16:00 bo to są dwa bardzo różne przypadki. W pierwszym po prostu wstawiasz dwa warunki - jeden na datę drugi na czas a w drugim dużo prościej będzie połączyć datę z godziną i wstawić jeden warunek na datę_godzinę
zaczynając od 01.01.2000 8:00 do 07.01.2000 16:00