Problem z pobieraniem danych z widoku w bazie danych

0

Dzień dobry,
chcę pobrać dane z widoku utworzonego w Postgresql za pomocą poniższego polecenia
screenshot-20221014230752.png
w powyższym przypadku otrzymuje dane których data zbioru jest większa od lub równa wprowadzonemu parametrowi.

screenshot-20221014230927.png
Natomiast jak wprowadzę znak równości pomiędzy data_zbioru a parametrem to nie otrzymuje zadanych danych, pomimo tego, że na pewno występują dane w tym dniu :(
screenshot-20221014231201.png
Po wprowadzeniu znaku równości i wprowadzeniu jako parametr '2022-10-14' otrzymuje pusty wynik :(
screenshot-20221014231309.png

0

Nie wiemy w jakim formacie jest podawana data oraz co kryje się pod zmienną data, więc dużo nie pomożemy.

0
Gouda105 napisał(a):

Nie wiemy w jakim formacie jest podawana data oraz co kryje się pod zmienną data, więc dużo nie pomożemy.

pod zmienna data kryje się data według formatu '2022-10-14'

0
virusek391 napisał(a):
Gouda105 napisał(a):

Nie wiemy w jakim formacie jest podawana data oraz co kryje się pod zmienną data, więc dużo nie pomożemy.

pod zmienna data kryje się data według formatu '2022-10-14'

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.
screenshot-20221014235302.png

0

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

0
Gouda105 napisał(a):

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

screenshot-20221015000134.png![screenshot-20221015000134.png](https://4programmers.net/uploads/118852/PfKyH07SD8fO1rlcUiYQMWn8L2tT8Y9TEE50gfm7.pn

Wykonałem polecenie:
screenshot-20221015000437.png
i otrzymałem:
screenshot-20221015000510.png

0
virusek391 napisał(a):
Gouda105 napisał(a):

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

screenshot-20221015000134.png![screenshot-20221015000134.png](https://4programmers.net/uploads/118852/PfKyH07SD8fO1rlcUiYQMWn8L2tT8Y9TEE50gfm7.pn

Wykonałem polecenie:
screenshot-20221015000437.png
i otrzymałem:
screenshot-20221015000510.png

Problem występuje prawdopodobnie w moim widoku bo tam widzę ze przy dacie jest wartość TEXT. Zaraz sprawdzę to

CREATE OR REPLACE VIEW public.view_pobierz_zlecenia (
data_zbioru AS date,
suma)
AS
SELECT to_char(zlecenia.data_zbioru::timestamp with time zone,
'YYYY-MM-DD'::text) AS data_zbioru,
sum(zlecenia.ilosc) AS suma
FROM zlecenia
GROUP BY zlecenia.data_zbioru;

0
virusek391 napisał(a):
virusek391 napisał(a):
Gouda105 napisał(a):

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

screenshot-20221015000134.png![screenshot-20221015000134.png](https://4programmers.net/uploads/118852/PfKyH07SD8fO1rlcUiYQMWn8L2tT8Y9TEE50gfm7.pn

Wykonałem polecenie:
screenshot-20221015000437.png
i otrzymałem:
screenshot-20221015000510.png

Problem występuje prawdopodobnie w moim widoku bo tam widzę ze przy dacie jest wartość TEXT. Zaraz sprawdzę to

CREATE OR REPLACE VIEW public.view_pobierz_zlecenia (
data_zbioru AS date,
suma)
AS
SELECT to_char(zlecenia.data_zbioru::timestamp with time zone,
'YYYY-MM-DD'::text) AS data_zbioru,
sum(zlecenia.ilosc) AS suma
FROM zlecenia
GROUP BY zlecenia.data_zbioru;

Teraz po modyfikacji widoku (view) otrzymałem:
screenshot-20221015002324.png
Ciekawe jest to że problem występuje tylko przy pobieraniu danych z widoku. Jeżeli wykonałbym polecenie SQL bez zamykaniu je w samym widoku to działa.

0
virusek391 napisał(a):
virusek391 napisał(a):
virusek391 napisał(a):
Gouda105 napisał(a):

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

screenshot-20221015000134.png![screenshot-20221015000134.png](https://4programmers.net/uploads/118852/PfKyH07SD8fO1rlcUiYQMWn8L2tT8Y9TEE50gfm7.pn

Wykonałem polecenie:
screenshot-20221015000437.png
i otrzymałem:
screenshot-20221015000510.png

Problem występuje prawdopodobnie w moim widoku bo tam widzę ze przy dacie jest wartość TEXT. Zaraz sprawdzę to

CREATE OR REPLACE VIEW public.view_pobierz_zlecenia (
data_zbioru AS date,
suma)
AS
SELECT to_char(zlecenia.data_zbioru::timestamp with time zone,
'YYYY-MM-DD'::text) AS data_zbioru,
sum(zlecenia.ilosc) AS suma
FROM zlecenia
GROUP BY zlecenia.data_zbioru;

Teraz po modyfikacji widoku (view) otrzymałem:
screenshot-20221015002324.png
Ciekawe jest to że problem występuje tylko przy pobieraniu danych z widoku. Jeżeli wykonałbym polecenie SQL bez zamykaniu je w samym widoku to działa.
screenshot-20221015003322.png

0
virusek391 napisał(a):
virusek391 napisał(a):
virusek391 napisał(a):
virusek391 napisał(a):
Gouda105 napisał(a):

Tak, problem występuje tylko jak dam znak równości w poleceniu pool.query. Natomiast jak dam te samo polecenie bezpośrednio w bazie danych to działa.

No to wniosek z tego prosty. Jedno drugiemu nie jest równe. Pobierz jedną datę z bazy danych, użyj typeof, żeby sprawdzić, jaki to typ i to samo zrób na zmiennej data, chociaż zakładam, że problem jest jednak w ten z bazy danych. Nie używałem nigdy postgresql (zakładam, że to ta baza), ale SQL czasem używam.
Ewentualnie sprawdź w jakim typie zapisywana jest kolumna data-zbioru.

screenshot-20221015000134.png![screenshot-20221015000134.png](https://4

Poprawiłem typ daty w widoku z char na date i teraz ładnie wszystko ruszyło :) Dzięki za naprowadzenie :)

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