Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Czy 8:00:00 jest większa od 22:00:00? :)
Forum PHP.pl > Forum > Przedszkole
ekstro
Witam,

mam taki problem:

Tabelka:

  1. id|to_time|label
  2. 1|24:00:00|text1
  3. 2|16:00:00|text2
  4. 3|21:00:00|text3
  5. 4|08:00:00|text4


  1. SELECT label FROM test WHERE to_time > '23:12:12' ORDER BY to_time ASC LIMIT 1


  1. SELECT label FROM test WHERE to_time > '01:12:12' ORDER BY to_time ASC LIMIT 1


Dla mnie godzina 8 rano jest późniejsza (większa) niż godzina 23:12 - niestety, zapytanie zwraca null. Drugie zapytanie zwraca rekord id=4 czyli godzinę 8:00:00.
Czy da się to jakoś rozwiązać?
blooregard
Pomyśl: dla Ciebie tak, bo 8 rano jest NASTĘPNEGO DNIA.
Dla serwera bazodanowego 8 < 24.
Skąd serwer ma wiedzieć, że chodzi Ci o 8 rano następnego dnia, więc ta 8 rano ma byc większa od tej 23 dnia poprzedniego?

Wskazówka: dodaj pole DATA i sprawdzaj również DZIEŃ.
Jeśli dzień_godziny_8 > dzien_godziny_23 to wtedy faktycznie godzina_8 > godziny_23
ekstro
Nie mogę dodać dnia, bo to ma działać codziennie. Zawsze mogę dodać kolejny rekord z godziną '23:59:59', tylko myślałem, że może jest jakaś funkcja która będzie w stanie porównać to nie liczbowo jak piszesz (8<24) tylko wyłącznie na podstawie czasu, nie patrząc na daty.

Chyba się trochę zmatrixowałem za bardzo smile.gif Nie ma przecież możliwości żeby 8:00:00>22:00:00 smile.gif
blooregard
No to inaczej - zamieniaj te godzinę na unixowy znacznik czasu, zanim zapiszesz to do bazy (ale całą datę, łącznie z dniem, miesiącem i rokiem) i wtedy porównujesz sobie dwa int-y. Wtedy zawsze będziesz miał 8 > 24 smile.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.