Filtrowanie po dacie i godzinie kiedy są w osobnych kolumnach

2018-11-27 23:06
Szalony Jeleń
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.

edytowany 1x, ostatnio: furious programming, 2018-11-27 23:27

Pozostało 580 znaków

2018-11-27 23:11
0

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


Pozostało 580 znaków

2018-11-27 23:27
Szalony Jeleń
0

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

data i godzina.png

edytowany 1x, ostatnio: furious programming, 2018-11-27 23:31
Obrazki dodajemy do załączników postów, a przed wysłaniem posta korzystamy z zakładki „Podgląd”, aby się upewnić, że zawartość będzie prawidłowo formatowana. - furious programming 2018-11-27 23:32

Pozostało 580 znaków

2018-11-27 23:30
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


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 2x, ostatnio: cerrato, 2018-11-28 08:42
Edytowałem jego post – obrazek teraz wyświetla się prawidłowo. - furious programming 2018-11-27 23:32

Pozostało 580 znaków

2018-11-27 23:42
Smutny Rycerz
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

edytowany 1x, ostatnio: furious programming, 2018-11-28 00:05
Oczywiście, masz zupełnie rację. W takim razie jedyne co mogę zrobić to "dopisać się" do tego, co poniżej napisał @Marcin.Miga. Rzeczywiście, pisałem na szybko i przeoczyłem ten fakt. Ale Marcin podał poprawne rozwiązanie. - cerrato 2018-11-28 08:33

Pozostało 580 znaków

2018-11-27 23:43
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

Pozostało 580 znaków

2018-11-28 00:31
Smutny Rycerz
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

edytowany 1x, ostatnio: furious programming, 2018-11-28 13:23

Pozostało 580 znaków

2018-11-28 10:24
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ę


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-11-28 14:07
Czarny Mleczarz
0

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

Pozostało 580 znaków

2018-11-28 15:36
1

http://sqlfiddle.com/#!15/86d38/2

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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