• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wybierać rekordy z bazy danych z datą aktualnego tygodnia?

Object Storage Arubacloud
+1 głos
953 wizyt
pytanie zadane 27 września 2015 w SQL, bazy danych przez DavidMCPolska Bywalec (2,770 p.)
zmienione kategorie 27 września 2015 przez DavidMCPolska
Mam tabelę która ma jedną kolumnę typ DATETIME. Jakie muszę zrobić zapytanie, które wybierze wiersze z datą z aktualnego tygodnia?

3 odpowiedzi

+1 głos
odpowiedź 27 września 2015 przez Janusz92 Bywalec (2,150 p.)
wybrane 27 września 2015 przez DavidMCPolska
 
Najlepsza

Z aktualnego tygodnia, czyli wszystkie dni po ostatniej niedzieli? Przykładowo dzisiaj byłyby to dni 21, 22, 23, 24, 25, 26 i 27 września 2015?

Ja wpadłem na coś takiego:

EDIT: jednak źle :(

 

komentarz 27 września 2015 przez DavidMCPolska Bywalec (2,770 p.)
Niestety to zapytanie nie wybiera wierszy z aktualnego dnia.
komentarz 27 września 2015 przez DavidMCPolska Bywalec (2,770 p.)
Ale masz jeszcze szansę na dobrą odpowiedź, jak wytłumaczysz mi klauzule WHERE, bo według mnie wystarczy trochę je przerobić i będzie OK.
komentarz 27 września 2015 przez Janusz92 Bywalec (2,150 p.)

Wyszło mi takie coś tym razem:

SELECT * FROM tabela WHERE WEEK(datetime) > WEEK(NOW()) - 1

Niestety jest taka wada, że nowy tydzień jest liczony po każdej sobocie, a nie niedzieli.

komentarz 27 września 2015 przez DavidMCPolska Bywalec (2,770 p.)
Nie martw się, zaraz powinienem to przerobić żeby działało od poniedziałku do niedzieli ;)
komentarz 27 września 2015 przez DavidMCPolska Bywalec (2,770 p.)
edycja 27 września 2015 przez DavidMCPolska

Działa wink. Dzięki :). Przerobiłem to na takie coś:

SELECT * FROM wpisy WHERE WEEK(date,1) = WEEK(NOW()) -1

1 po date oznacza tryb, domyślnie jest na 0 czyli zaczynaj od soboty, a 1 od poniedziałku :)

Dostałeś Najlepszą Odpowiedź ;) Zebrałeś dużo punktów :)

komentarz 27 września 2015 przez Janusz92 Bywalec (2,150 p.)
Dzięki :)

Tak, parametr, poczytałem teraz trochę :)

Ale czy jeśli mają być daty z obecnego tygodnia, a jako parametr jest teraz podana "jedynka" to chyba "-1" z samego końca zapytania trzeba zlikwidować?
1
komentarz 27 września 2015 przez Janusz92 Bywalec (2,150 p.)

Jest jeszcze jedna ważna kwestia. Skoro zapytanie opiera się na ilości tygodni w roku, to należy jeszcze dodać do klauzuli WHERE tylko obecny rok. Inaczej wybierze Ci rekordy z obecnego tygodnia, ale z dowolnego roku.

Albo w ogóle oprzeć zapytanie na YEARWEEK

Czyli kolejna wersja zapytania :):

SELECT * FROM tabela WHERE YEARWEEK(datetime,1) = YEARWEEK(NOW(),1) 

 

komentarz 3 października 2015 przez DavidMCPolska Bywalec (2,770 p.)
Tak, dzięki za podpowiedź i jak robiłem testy z zapytaniem to pasowała wersja bez -1, ale przy wklejaniu tutaj i w kodzie musiałem wkleić poprzednią wersję i dzisiaj się właśnie skapnąłem, że wyświetla wpisy z poprzedniego tygodnia ;)
+1 głos
odpowiedź 27 września 2015 przez niezalogowany
Jesteś pewny, że wybrałeś dobrą kategorię zapytania? (wybrałeś c/c++, powinieneś wybrać "Bazy danych i SQL")
komentarz 27 września 2015 przez DavidMCPolska Bywalec (2,770 p.)
Sorki, zapomniałem ustawić kategorię :P
0 głosów
odpowiedź 27 września 2015 przez Bantu Nałogowiec (34,170 p.)
Obstawiam, że korzystasz z bazy MySQL to ja bym spróbował jakimś takim zapytaniem:

SELECT * FORM tbl WHERE weekofyear(var_datetime) == 34;

Nie wiem czy takie zapytanie jest poprawne ale powinno wyciągnąć wszystkie rekordy z 34 tygodnia roku.
Nie wiem też czy Ci o takie coś chodziło.

Zawsze możesz zajrzeć tutaj: https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_weekofyear

Podobne pytania

0 głosów
1 odpowiedź 2,450 wizyt
pytanie zadane 21 lipca 2015 w SQL, bazy danych przez mowmiheniek Stary wyjadacz (11,900 p.)
+1 głos
1 odpowiedź 265 wizyt
0 głosów
1 odpowiedź 217 wizyt
pytanie zadane 27 lipca 2018 w SQL, bazy danych przez MaxD1998 Początkujący (280 p.)

92,539 zapytań

141,382 odpowiedzi

319,481 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...