dj.drezyna Napisano Kwiecień 15, 2010 Zgłoś Share Napisano Kwiecień 15, 2010 Witam! Od jakiś dwóch tygodni zająłem się bazami danych obsługiwanych przez php. Więc szybko pojawił się problem, bo pole data w tabeli nie może być typu daty w dosłownym tego słowa znaczeniu ponieważ w polu tym poza czymś w rodzaju 2000-03-09 jest np. wpis 2005-05-00 który informuje mnie o tym że chodzi o maj ale nie wiadomo dokładnie o jaki dzień tego miesiąca. No i tak dalej czyli np 1998-00-00 oznacza, że na pewno było to w 1998 roku ale nie wiadomo kiedy, czyli w jakim miesiącu i w jaki dzień. Tu pojawia się pytanie. Czy można jakoś porównywać zapytania z użyciem LIKE w części WHERE? Chodzi o to czy można ze sobą porównywać fragmenty z zapytania w stylu (poprawność składniowa nie występuje ale prosiłbym o wskazówki co źle) LIKE ____-$miesiacod-__ < LIKE ____-$miesiacdo-__ No i jak to zapisać bo coś mi się wydaje że te podkreślenia (mają zastępować dany znak) trochę zmieniają poprawność składni. A może jest inny sposób na porównywanie fragmentów z danego pola z pewnej kolumny? Tak żeby ten fragment był np. sprawdzony czy jest większy czy mniejszy od tego samego fragmentu w innym polu. Dziękuję za zapoznanie się z treścią powyższego zapytania. Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 16, 2010 Zgłoś Share Napisano Kwiecień 16, 2010 może spróbuj skonwertować datę na tekst SELECT CAST(now() AS CHAR CHARACTER SET utf8) Link do komentarza Udostępnij na innych stronach More sharing options...
dj.drezyna Napisano Kwiecień 16, 2010 Autor Zgłoś Share Napisano Kwiecień 16, 2010 No właśnie pole tej ,,pseudo''daty jest właśnie w typie danych varchar(10). Więc nie rozumiem jak to miałoby wyglądać. No niestety bazami danych bawię się kilka tygodni zaledwie więc pewne rzeczy choć bym chciał nie wezmę z manuala niestety więc bardzo proszę o odpowiedź. A zatem czy jest możliwe by wykorzystać do tego polecenie LIKE bo to jakoś najbardziej mi odpowiada ale mówię, jestem otwarty na inne propozycje tylko proszę, piszcie elementarnym językiem. Dzięki, Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 16, 2010 Zgłoś Share Napisano Kwiecień 16, 2010 czyli chodzi ci o to żeby wyciągnąć element daty tak?? SELECT EXTRACT(month FROM '2009-07-00'); Link do komentarza Udostępnij na innych stronach More sharing options...
dj.drezyna Napisano Kwiecień 16, 2010 Autor Zgłoś Share Napisano Kwiecień 16, 2010 Dziękuję! To już blisko jest rozwiązanie. Teraz pozostaje tylko jakoś tą funkcję, którą podałeś (wielkie podziękowania!) przerobić by wygenerować coś na kształt WHERE x>1 AND x Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 16, 2010 Zgłoś Share Napisano Kwiecień 16, 2010 załóżmy że chcesz wybrać wszystkie rekordy z datą późniejszą od 4 lutego 2000 KOD SELECT * FROM `tabela` WHERE EXTRACT(year FROM dat)>=2000 AND( EXTRACT(month FROM dat)>=2 OR EXTRACT(month FROM dat) =0) AND( EXTRACT(day FROM dat)>=4 OR EXTRACT(month FROM dat) =0) gdzie dat to kolumna z datą Link do komentarza Udostępnij na innych stronach More sharing options...
dj.drezyna Napisano Kwiecień 16, 2010 Autor Zgłoś Share Napisano Kwiecień 16, 2010 Nie sprawdzałem tego ale wierzę na słowo, że zadziała. Dziękuję Ci Sazian. No jak pamiętam to pomogłeś mi w chyba największej liczbie moich problemów na tym forum. Dziękuję, pozdrawiam i jestem Ci bardzo wdzięczny! 3mka! Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.