Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Czy 8:00:00 jest większa od 22:00:00? :)
ekstro
post 17.04.2009, 21:02:28
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.10.2008

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował ekstro 17.04.2009, 21:02:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
blooregard
post 17.04.2009, 21:07:39
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
ekstro
post 17.04.2009, 21:11:30
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 11.10.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował ekstro 17.04.2009, 21:21:10
Go to the top of the page
+Quote Post
blooregard
post 17.04.2009, 21:25:36
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:54