Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] 7 dni do tylu SELECT
Forum PHP.pl > Forum > Bazy danych
Spyder
Witam

Mam tabele w bazie VARCHAR z datami zapisanymi w formacie 31/03/2011 i staram sie poprac daty z ostatniego tygodnia (7 dni) robie to tak:

  1. $lastWeek = date("d/m/Y",mktime(0, 0, 0, date("n"), date("j")-6, date("Y")) - ((date("N"))*3600*24));


  1. SELECT * FROM report WHERE date >= STR_TO_DATE('$lastWeek', '%d/%m/%Y')


Jednak moje zapytanie nie zwraca rezultatu. Gdzie moze byc problem?

Dzieki
nospor
Cytat
Gdzie moze byc problem?
W tym że data powinna być polem datowym a nie polem tekstowym.
Porównanie tekstów na zasadzie 31/03/2011 > 31/02/2011 jest bez sensu bo tu porównujesz teksty a nie daty.
Jeśli masz możliwość naprawdy tabeli i zrobienie z dat pol datowych to zrob to.
Spyder
Nie bardzo bo pola datowe dzialaja tylko na zasadzie 14-07-2011 juz z tym za pozno troche co sugerujesz jak to poprawic?
Dzieki
nospor
Cytat
Nie bardzo bo pola datowe dzialaja tylko na zasadzie 14-07-2011
I w czym problem w związku z tym?
Spyder
Mam ponad 35tys rekordów z data zapisana w formacie 05/04/2011 12:12:07 lub 05/04/2011 wiem ze moge nie uzywac pol datowych i je konwertowac. Wiesz jak to zrobic na polach ktore podalem?

Dzieki
nospor
Przecież używasz już STR_TO_DATE. Musisz tej funkcji podczas porównywania użyc też na polu z datą.
Spyder
A widzisz nie wiedzialem ze to jest obustronna zaleznosc. Dziekuje dziala.
nospor
No skoro po jednej stronie masz tekst a po drugiej date i mowie ci ze nie mozna tekstów porównywać to mogłeś chwilkę sie nad tym zastanowić tongue.gif
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.