Staram się tworzyć coraz bardziej skomplikowane zapytanie do mojej bazy danych, aby się podszkolić i zyskać na czasie etc.
Chciałem sprawdzić dwa pola w jednej tabeli. Są to daty, ale (mój błąd - wiem) pola te są varchar a nie date, datetime czy timestamp. Mimo to chciałem wyświetlić wszystkie rekordy, które mieszczą się w danym przedziale czasowym. Na początku myślałem, że z powodu typu pola w tabeli coś może nie działać, ale poniższe zapytanie przyniosło oczekiwane rezultaty:
<?php $sql = "SELECT id, purchase_date FROM products WHERE purchase_date BETWEEN '01.04.2009' AND '16.04.2009'"; ?>
Jednak przez dwie godziny nie mogłem pojąć dlaczego nie działa zapytanie następujące:
<?php $date_a = "01.04.2009"; $date_b = "16.04.2009"; $sql = "SELECT id, purchase_date FROM products WHERE purchase_date BETWEEN '$date_a' AND '$date_b'"; ?>
Powyższe zapytanie spowoduje wyświetlenie wszystkich rekordów tak jakby nie było w ogóle konstrukcji WHERE...
Próbowałem różnych sposobów(konwersja typu zmiennych, cudzysłowa zamiast apostrofów). Jednak nie znalazłem żadnego rozwiązania. Byłbym wdzięczny gdyby ktoś rozjaśnił mi sytuację
