2012-01-20 4 views
25

Próbuję wybrać ostatnie 6 miesięcy wpisów w tabeli, mam kolumnę o nazwie datetime i jest to w formacie datetime MySQL.Jak wybrać ostatnie 6 miesięcy z tabeli aktualności za pomocą MySQL

Widziałem wiele sposobów użycia interwałów i innych metod - jakiej metody powinienem użyć? Dzięki

+3

jeśli pole jest naprawdę nazywa cię datetime Będziesz musiał użyć ', aby go otoczyć. datetime jest zarezerwowanym słowem. Odpowiedź Pablo działałaby, gdyby miał 'twoje_dt_ pole', które może wymagać umieszczenia' datetime' z odpowiednią literą 'escape '. – xQbert

Odpowiedz

79

Zastosowanie DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH) 
+0

Funkcja DATE_SUB() odejmuje interwał od podanej daty. W tym przypadku "teraz() - 6 miesięcy". – prageeth

+0

Wewnątrz funkcji 'DATE_SUB()', czy mogę również użyć 'MAX ()' zamiast 'teraz()' ??? Ponieważ mam do czynienia z podobną sytuacją i muszę sprawdzić dane z ostatnich 6 miesięcy od ostatniej daty obecnej w kolumnie daty zamiast dzisiejszej daty. – LearneR

11

Spróbuj tego:

select * 
    from table 
where your_dt_field >= date_sub(now(), interval 6 month); 

Zapytanie brzmi: daj mi wszystkie wpisy w table gdzie pole odpowiadające dacie wejścia jest nowszy niż 6 miesięcy.

+0

your_dt_field jaki będzie format? również w jaki sposób można użyć tamtejszych systemów aktualna data –

1

Próbowałem @ user319198 odpowiedzi na wyświetlanie ostatnich 6 miesięcy (suma) sprzedaży, to działało, ale w obliczu jeden problem w najstarszym miesiąca, i nie dostać ilości sprzedaży danego cały miesiąc. Wynik zaczyna się od równoważnego bieżącego dnia danego miesiąca.

Tylko chcę podzielić się moją rozwiązanie jeśli ktoś zainteresowany: -

yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH) 
limit 6 

Także to będzie wspaniale, jeśli ktoś ma lepsze rozwiązanie dla mojego przypadku J.

Powiązane problemy