Filtrowanie po dacie i godzinie kiedy są w osobnych kolumnach

0

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.

0

Twój opis jest niestety dosyć niejasny - mógłbyś podać jakieś przykłady?

0

W tym zapytaniu filtruję tylko datę a chciałbym też godzinę bez łączenia kolumn

data i godzina.png

0

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

0

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

1

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
0

Chciałbym to w SAP B1 wykorzystać do pracy zmianowej, można łatwo przeszukiwać

błąd2.png

Jednak coś mi nie poszło

bład1.png

0

ż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ę

0

zaczynając od 01.01.2000 8:00 do 07.01.2000 16:00

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