Michał Wójcik

Michał Wójcik Front End Developer
- Freelancer

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Witam,

mam problem. Sam się z niego śmieje bo jest łatwy, ale nie umiem sobie z nim poradzić. Potrzebuje aby ktoś mnie nakierował, pokazał demo, albo wytłumaczył bo naprawde nie wiem jak to ugryźć.

Mam w bazie danych dodawane rekordy, które zapisują godzine i date dodania rekordy (musi być godzina i data bo potrzebuje to do innego skryptu i zapytania). W formacie: 2009-08-05 10:48:37

POtrzebuje zrobić zapytanie, które będzie pokazywać rekordy tylko z tego miesiąca (w tym, że będzie sprawdzał rekordy od:
1 dnia miesiąca do dnia dzisiejszego (czyli codziennie nowy dzień), aż do ostatniego dnia miesiąca.

Desperacko chciałem już z wpisu do bazy ucinać rok i zostawiać miesiąc i dni i na podstawie tego pętle kręcić, z ifami odpowiednimi za dni w miesiącu (raz 30, a raz 31 no i luty..). Ale to bez sensu i musi być coś bardziej przystępnego.

Możecie pomóc?

Dzięki wielkie -- no i wesołego!

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Oj chłopie długa droga przed Tobą :)
Dla MySQL:

where (jakas_data between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() )
Ten post został edytowany przez Autora dnia 19.04.14 o godzinie 13:57
Michał Wójcik

Michał Wójcik Front End Developer
- Freelancer

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Dziękuje mój mistrzu :) Działa Pięknie :)

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Jak dane z obecnego miesiąca to można np. , takie polecenie, na szybkiego zrobiłem na przykładzie prestashop-a

SELECT * FROM `ps_category` where EXTRACT(month FROM date_add) between month(now()) and month(now())

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Krzysztof M.:
Jak dane z obecnego miesiąca to można np. , takie polecenie, na szybkiego zrobiłem na przykładzie prestashop-a

SELECT * FROM `ps_category` where EXTRACT(month FROM date_add) between month(now()) and month(now())

Panie a jak w tabelce masz dane z od roku 2013 i 2014 to jakie dane zwróci ci to zapytanie?

kumasz w czym tkwi błąd?

poza tym po kiego grzyba between pomiędzy tym samym miesiącem i tym samym miesiącem? mój kooprocesor logiczny zaczyna odpływać :)

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

No cóz Panie Przemku, słowa "kumasz" nie używa się w słownictwie profesjonalnym, skoro już Pan za takiego próbuje uchodzić. Założenie było do danych tego samego miesiąca bez uwzględniania roku, nie znam schematu bazy danych tego Pana ani na jakim okresie będzie bazować analiza, ani podzapytań czy wcześniej nie będą filtrowane dane poprzez rok, a pozostaje do filtracji miesiąc itd. ale fakt, ma Pan rację, przy założeniu, że dane są latami należałoby przefiltrować lata. Do powyższego można z operatorem AND wyekstrachować rok.

SELECT * FROM `ps_category` where EXTRACT(month FROM date_add) = month(now()) and EXTRACT(YEAR from date_add)=YEAR(now())

kumasz ? ;)

Konstrukcja between wymaga dwóch parametrów, a chciałem pokazać tylko, że możemy także poszukiwać w zakresie więcej niż jednego miesiąca, taki był mój zamiar, a powyżej ma Pan zapytanie dla jednego miesiąca tylko i wyłącznie.
Przemysław R.:
Krzysztof M.:
Jak dane z obecnego miesiąca to można np. , takie polecenie, na szybkiego zrobiłem na przykładzie prestashop-a

SELECT * FROM `ps_category` where EXTRACT(month FROM date_add) between month(now()) and month(now())

Panie a jak w tabelce masz dane z od roku 2013 i 2014 to jakie dane zwróci ci to zapytanie?

kumasz w czym tkwi błąd?

poza tym po kiego grzyba between pomiędzy tym samym miesiącem i tym samym miesiącem? mój kooprocesor logiczny zaczyna odpływać :)

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

więcej luzu :)

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Krzysztofie zapomniałeś o drobnym szczególe:
Michał W.:
będzie sprawdzał rekordy od:
1 dnia miesiąca do dnia dzisiejszego (czyli codziennie nowy dzień), aż do ostatniego dnia miesiąca.

Teraz to już trzeci extract byś musiał dołożyć.Ten post został edytowany przez Autora dnia 04.05.14 o godzinie 09:48

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Panowie czemu się czepiacie tego EXTRACT jak rzep psiego ogona?

do wydłubania miesiaca wystarczy http://dev.mysql.com/doc/refman/5.5/en/date-and-time-f...

moim zdaniem najprościej przeformatować datę do ciągu tekstowego http://dev.mysql.com/doc/refman/5.5/en/date-and-time-f... i porównać to z innym ciągiem tekstowym

select * from tabela where DATE_FORMAT(kolumna_z_data,'%Y%m') = DATE_FORMAT(now(),'%Y%m')


czysto, schludnie i bardzo elastycznie bo wystarczy zmienić ciąg formatujący do zmiany okresu króty nas interesuje - miesiąc, kwartał, tydzień - co byśmy tam chcieli

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Najprościej to tak jak napisałem w 2 poście.

Przemek Twój przykład nie zadziała. To ma być zakres dat (od 1 do 4 kwietnia 2014) a nie konkretna data (tu rok/miesiąc).

Nie wiem po co Krzysztof ciągnął temat skoro rozwiązanie już padło.

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Sebastian O.:
Najprościej to tak jak napisałem w 2 poście.

Przemek Twój przykład nie zadziała. To ma być zakres dat (od 1 do 4 kwietnia 2014) a nie konkretna data (tu rok/miesiąc).

Nie wiem po co Krzysztof ciągnął temat skoro rozwiązanie już padło.

Aby znaleźć różne rozwiązania, taka dyskusja jest konstruktywna i wzbogaca doświadczenie wszystkich uczestników. To dzięki tego typu sporom, poznajemy najlepsze rozwiązanie.

konto usunięte

Temat: Zapytanie pozwalające pokazać wyniki tylko z tego miesiąca

Sebastian O.:
Krzysztofie zapomniałeś o drobnym szczególe:
Michał W.:
będzie sprawdzał rekordy od:
1 dnia miesiąca do dnia dzisiejszego (czyli codziennie nowy dzień), aż do ostatniego dnia miesiąca.

Teraz to już trzeci extract byś musiał dołożyć.
Dzięki. Faktycznie masz rację, przy założeniu ograniczenia do dnia pobrania danych "now" albo tylko z 1 konkretnego dnia bieżącego miesiąca. Ten post został edytowany przez Autora dnia 04.05.14 o godzinie 16:13



Wyślij zaproszenie do