• 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?

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
621 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

0 głosów
odpowiedź 27 września 2015 przez Janusz92 Bywalec (2,130 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,130 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,130 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ć?
komentarz 27 września 2015 przez Janusz92 Bywalec (2,130 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,150 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,042 wizyt
pytanie zadane 21 lipca 2015 w SQL, bazy danych przez mowmiheniek Stary wyjadacz (11,940 p.)
+1 głos
1 odpowiedź 169 wizyt
0 głosów
1 odpowiedź 179 wizyt
pytanie zadane 27 lipca 2018 w SQL, bazy danych przez MaxD1998 Początkujący (280 p.)

89,728 zapytań

138,332 odpowiedzi

309,340 komentarzy

59,649 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 429p. - Argeento
  2. 427p. - nidomika
  3. 396p. - Mikbac
  4. 392p. - ssynowiec
  5. 390p. - Łukasz Eckert
  6. 387p. - TheLukaszNs
  7. 386p. - rucin93
  8. 382p. - Michal Drewniak
  9. 382p. - Marcin Harasimowicz
  10. 378p. - JMazurkiewicz
  11. 373p. - tokox
  12. 367p. - Jarosław Roszyk
  13. 362p. - adrian17
  14. 359p. - overcq
  15. 350p. - Mawrok
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...