Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]select between
Forum PHP.pl > Forum > Przedszkole
mb83
Witam,
Mam problem, mam baze w której m.in są takie pole jak :
od_kiedy | do_kiedy

potrzebuje skonstruować zapytanie select tak aby wyswietlal mi rekordy tylko wtedy gdy aktualna data jest pomiedzy tymi dwoma kolumnami.
ja napisałem coś takiego ale nie działa:

  1. SELECT * FROM `kino` WHERE date('d.m.Y') BETWEEN '.$od_kiedy.' AND '.$do_kiedy.'


format dat w tych kolumnach to oczywiście d.m.Y

prosze o pomoc w rozwiazaniu problemu, dzieki
bpskiba
  1. SELECT * FROM kino WHERE DATE(NOW()) BETWEEN od_kiedy AND do_kiedy


Wydaje mi się jednak, że masz niewłaściwy typ pól z datami i funkcje czasu nie zadziałają. Pola od_kiedy i do_kiedy powinny być typu 'date', czyli mieć format Y-m-d. Znając życie Ty masz char lub varchar
mb83
pola od_kiedy i do_kiedy to TEXT a w nich są wprowadzane daty ręcznie (tak musi być)
chce aby data była wyświetlana w formacie d.m.Y a więc czas nie ma znaczenia

no chyba żeby zmienić te pola na date, ale wtedy w SELECT musze zmienic format na d.m.Y bo DATE domyslnie ma Y-m-d a nie chce takiego formatu ...
rocktech.pl
Witam.

No to źle kombinujesz. W bazie daty trzymasz jako DATE, DATETIME albo TIMESTAMP inaczej operacje na tych polach to rzeźba .. Kończysz używając CAST DATE_FORMAT LIKE.

Cytat
chce aby data była wyświetlana w formacie d.m.Y a więc czas nie ma znaczenia


Użyj typu DATE

Cytat
no chyba żeby zmienić te pola na date, ale wtedy w SELECT musze zmienic format na d.m.Y bo DATE domyslnie ma Y-m-d a nie chce takiego formatu ...


  1. SELECT DATE_FORMAT(od_kiedy, '%d.%m.%Y');


Formatowanie tych pól to kwestia oddzielnej logiki!
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.