Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porównywanie wg dat
Forum PHP.pl > Forum > Bazy danych > MySQL
ktuvok
W swojej bazie mam daty zapisane w postaci DATETIME,
np: '2004-11-13 17:56:07'

Używam do porównania funkcji DATE_FORMAT. Jeśli juzer wybiera w formularzu,
że chce oglądać zamówienia złożone pomiędzy '2004-07-16' a '2004-09-02', to
instrukcja wybierająca rekordy jest taka:
  1. SELECT * FROM Zamowienia WHERE DataZamowienia BETWEEN DATE_FORMAT('2004-07-16','%Y-%m-%d') AND DATE_FORMAT('2004-09-02','%Y-%m-%d')

Czy powinienem zamiast tego stosować UNIX_TIMESTAMP? Czy wtedy będzie
szybciej albo pewniej?


I druga rzecz:

Jeśli wpiszę następujące zapytanie:
  1. SELECT IF(DATE_FORMAT('2004-05-25 15:22:16','%Y-%m-%d')-
  2. DATE_FORMAT('2004-05-23 12:37:16','%Y-%m-%d') > 0, 'true','false')

to dlaczego otrzymuję false, skoro '2004-05-25' minus '2004-05-23' powinno
wynieść 2?

Zapytanie:
  1. SELECT IF(DATE_FORMAT('2004-05-25 15:22:16','%Y-%m-%d')>
  2. DATE_FORMAT('2004-05-23 12:37:16','%Y-%m-%d'), 'true','false')

zwraca już 'true' - przecież to nie ma sensu!

Pozdrawiam,
Krzysiek
rogrog
jeśli chodzi o odejmowanie to powinieneś używać timestampów

a w pozostałych przypadkach ich użycie zależy od Twojego uznania i tego co jest Ci potrzebne
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.