Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql + PHP] Filtorwanie po dacie
Forum PHP.pl > Forum > Bazy danych > MySQL
tikky
Witam,

Mam w bazie danych pole o nazwie data. Przykładowo takie '2007-10-01 23:13:55'

Chciałbym zadać zapytanie do bazy o wszystkie rekordy np z października tego roku.

Wiem że manualnie mogę to zrobić tak
CODE
SELECT * FROM baza WHERE data BETWEEN '2007-10-01' AND '2007-10-31'
ale jak zrobić żeby podać jakąś zmienną z PHP która bedzie zawierała numer miesiąca?
b_chmura
  1. <?php
  2. $ble = 12;//grudzien biggrin.gif
  3. $q  = mysql_query("SELECT * FROM baza WHERE data BETWEEN '2007-".$ble."-01' AND '2007-".$ble."-31';");
  4. ?>


o to chodzi?
tikky
hmm :-) to takie proste?

Ja myślałem, że jeśli miesiąc będzie miał 30 dni - przykładowo listopad a zapytamy: 
  1. <?php
  2. ....BETWEEN '2007-11-01' AND '2007-11-31';"
  3. ?>

to wyskoczy błąd że nie istnieje 31 listopada.

Ale faktycznie wydaje się działać - dziękuję za pomoc.
AxZx
to mozesz zrobic
  1. WHERE year(DATA) = 2007 AND month(DATA) = 11
tikky
Tak, ten sposób jest dużo prostszy. Udało mi się zrobić to tak jak chciałem. Dziękuję za pomoc.
Indeo
Jeszcze prościej:
  1. SELECT * FROM tabela WHERE DATA LIKE '2007-10%'
  2.  
  3. #albo np liczba rekordów w poszczególnych miesiącach:
  4.  
  5. SELECT LEFT(DATA,7) AS DATA,count(*) AS liczba FROM tabela GROUP BY DATA ORDER BY DATA
tikky
dzieki, ten sposób też działała.
Udało mi się już obejść inne problemy i moja witrynka jest już w testowej postaci.
www.cenozerca.pl

dzieki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.