![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 544 Pomógł: 5 Dołączył: 18.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewnien problem. Ostatnio robiłem "najpopularniejsze newsy" i pobierałem tylko te z przeciągu 7 dni. Zrobiłem to tak:
Niby działa. Teraz potrzebuję zrobić coś podobnego. Z tym, że ma pobierać rekordy z datą mniejszą bądź równą niż aktualna. Zrobiłem coś takiego: I nic się nie wyświetla. Pomyślałem, że to pewnie przez to, że datę trzymam jako VARCHAR a nie jako DATE. To by było zrozumiałe. Tylko teraz się zastanawiam czy ten kod który jest u góry działa poprawnie. Bo na oko wyświetla prawidłowo ale w dłuższej praktyce może się okazać że coś będzie nie tak. Zapytanie jest złe? Czy to przez typ pola? Jeśli to drugie to jak mam zapisywać jako DATE datę w formacie d.m.Y bo z tego co pamiętam zawsze miałem zapisywało mi się jako Y-m-d i dlatego przeszedłem na używanie VARCHARa. Proszę o pomoc. -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
WHERE date < '$date' - nie powinno byc tak?
a jaki masz format $date ? VarChar? WHERE date(date) < '$date' Ten post edytował maly_swd 11.03.2010, 09:33:46 -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 544 Pomógł: 5 Dołączył: 18.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak, powinno być z ' ale to akurat nie problem.
format $date mam d.m.Y, w Varchar taki sam format. Pytanie co ma być tutaj bo nie bardzo wiem: Próbowałem coś ale nic nie wyświetla. No i nie chce działać znak <= bo wtedy wywala błąd. Ten post edytował deha21 11.03.2010, 10:10:45 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź sobie
DATE_FORMAT lub CAST. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat o z tego co pamiętam zawsze miałem zapisywało mi się jako Y-m-d i dlatego przeszedłem na używanie VARCHARa ałć.... wroc natychmiast to DATE. Data to data i ma byc w typie datowym a nie tekstowym. Co z tego ze w bazie widzisz kreski zamiast kropek? To przed wyswietleniem sobie skonwertuj do formatu jaki chcesz - to zaden problem
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
VARCHAR jest sortowany alfabetycznie. Przy takim formacie jak masz, zachodzi:
30.01.2010 > 28.02.2010 > 25.06.2010 > 21.12.2012 Zmiana z VARCHAR na DATE zajmie Ci raptem 4 kwerendy, plus zmiany w kodzie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 544 Pomógł: 5 Dołączył: 18.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Oki, trochę kodu mam do przeglądnięcia
![]() Czyli teraz tak, żeby potem nie było że znowu źle robię ![]() Pokazuje poprawnie ale czy technicznie jest ok? ![]() I teraz na odwrót. Mam datę d.m.Y i chce przekonwertować ją do Y-m-d: Jest ok? -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jest ok. Mozesz tez formatowanie zrobic na poziomie bazy - mysql ma mase funkcji do formatowania daty
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Żeby zaoszczędzić cztery bajty (
![]() Kod $data=strtotime('11.03.2010'); $data=date('Ymd',$data); i wstawiać datę do zapytań bez cudzysłowów. Ma sens jeśli Webserver i MySQL stoją na różnych maszynach. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:01 |