Cześć, mam tabelę z polem daty i kilkoma innymi informacjami. Chcę zaznaczyć wszystkie wpisy z ostatniego tygodnia (tydzień zaczyna się od niedzieli).
wartości w tabeli:
id date
2 2011-05-14 09:17:25
5 2011-05-16 09:17:25
6 2011-05-17 09:17:25
8 2011-05-20 09:17:25
15 2011-05-22 09:17:25
Chcę wybrać wszystkie identyfikatory z zeszłego tygodnia, oczekiwane dane wyjściowe to 5, 6, 8. (identyfikator 2 nie w zeszłym tygodniu, a identyfikator 15 w bieżącym tygodniu).
Jak pisać i zapytania SQL dla tego samego.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
przez tygodnie, ale myślę, że jego celem nie są prawdziwe tygodnie kalendarzowe. Przynajmniej nie wspomniał o s / t, jak ISO-8601, ani o tym, czy chce, aby uwzględniono przełom roku.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Odpowiedzi:
źródło
źródło
id 15
...Używam funkcji YEARWEEK specjalnie, aby wrócić do poprzedniego całego tygodnia kalendarzowego (w przeciwieństwie do 7 dni przed dzisiejszym dniem). YEARWEEK pozwala również na drugi argument, który ustawi początek tygodnia lub określi, jak obsługiwany jest pierwszy / ostatni tydzień roku. YEARWEEK pozwala zachować liczbę tygodni, aby przejść wstecz / do przodu w jednej zmiennej i nie będzie zawierać tego samego numeru tygodnia z poprzednich / przyszłych lat i jest znacznie krótszy niż większość innych odpowiedzi tutaj.
źródło
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Uproszczona forma:
Dane z ostatniego tygodnia:
Dane sprzed 2 tygodni:
SQL Fiddle
http://sqlfiddle.com/#!8/6fa6e/2
źródło
Możesz wykonać obliczenia w PHP, a następnie dodać je do zapytania:
teraz podamy datę sprzed tygodnia
źródło
Prawdopodobnie najprostszym sposobem byłoby:
Przez 8 dni (tj. Od poniedziałku do poniedziałku)
źródło
PROSZĘ ludzie ... „Ostatni tydzień”, jak zapytał OP, a gdzie szukałem (ale nie znalazłem żadnej odpowiedzi satysfakcjonującej) to OSTATNI TYDZIEŃ.
Jeśli dzisiaj jest wtorek, OSTATNI TYDZIEŃ przypada w poniedziałek TYDZIEŃ TEMU do niedzieli TYDZIEŃ TEMU .
Więc:
Lub dla tygodni ISO:
źródło
Musisz obliczyć, który dzień względem dzisiejszego jest niedzielą w twoim oprogramowaniu pośrednim (php, python itp.) *
Następnie,
źródło
Może znajdować się w jednej linii:
źródło
Prostym sposobem może być ten, to jest prawdziwy przykład z mojego kodu i działa doskonale:
źródło
Powyższe zapytanie nie zadziała. Po
where
klauzuli, jeśli nie możemy podaćCAST
wartości kolumny, to nie zadziała. Powinieneścast
wartość kolumny.na przykład:
źródło
źródło
Często robię również szybką kontrolę „z ostatniego tygodnia”, a poniższe zwykle działają dobrze i obejmują dzisiaj.
Jeśli chcesz, aby NIE obejmowało to dnia dzisiejszego, po prostu odejmij dodatkowy dzień od @EndDate. Jeśli dzisiaj wybiorę te dwie zmienne, otrzymam
Gdybym chciał od niedzieli do niedzieli, miałbym co następuje.
źródło
źródło
Możesz również użyć go na e-mail
źródło
Używaj tego na tydzień rozpoczynający się od NIEDZIELI:
źródło
Na przykład jak w zeszłym miesiącu, w zeszłym roku, ostatnie 15 dni, ostatnie 3 miesiące
Pobierz rekord z ostatniego tygodnia
Użycie poniższego zapytania MySQL do pobrania rekordów z ostatniego tygodnia z tabeli bazy danych mysql.
źródło
Oto sposób na uzyskanie rekordów z ostatniego tygodnia, miesiąca i roku w MySQL.
Zeszły tydzień
W zeszłym miesiącu
Ostatni rok
źródło
Jeśli chcesz odzyskać rekordy z ostatnich 7 dni, możesz skorzystać z poniższego fragmentu:
źródło
Spróbuj tego:
źródło
Jeśli znasz już daty, możesz po prostu użyć między, na przykład:
źródło