Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Różnica daty i godziny
Forum PHP.pl > Forum > Bazy danych > MySQL
lukaszmaster
Witam,
chciałbym pobrać z bazy danych MYSQL tylko te rekordy które zawierają datę i godzinę ale wcześniejszą niż aktualna. Chodzi o to że robię coś ala aukcje allegro i nie chciałbym pobierać rekordów z bazy w których data i godzina jest chociażby o 5 sekund późniejsza niż data zakończenia aukcji. Różnice dni policzyłem w taki sposób:
  1. SELECT id, nazwa, z, na, koniec, TO_DAYS(koniec)-TO_DAYS(NOW()) AS roznica FROM zlecenia WHERE TO_DAYS(koniec) - TO_DAYS(NOW()) > 0


Lecz to zapytanie nie pokazuje mi aukcji które kończą się np za 3 godziny.
Różnice daty i godziny mogę zrobić w PHP ale nie chciał bym pobierać nawet o sekundę nie aktualnych rekordów z bazy.

Czy jest na to jakiś sposób? Bardzo proszę o pomoc.


Pozdrawiam,
Łukasz
nospor
zamiast rzutować na dni to rzutuj na sekundy.
lukaszmaster
A jaką funkcją mogę to zrobić?
nospor
zajrzyj do manuala mysql do dzialu "Funkcje daty i czasu"
Podpowiedź: to ten sam dział, w ktorym jest opis funkcji ktorej już uzywasz TO_DAYS...
lukaszmaster
  1. SELECT id, nazwa, koniec, TIME_TO_SEC(koniec)-TIME_TO_SEC(NOW()) AS roznica
  2. FROM zlecenia
  3. WHERE TIME_TO_SEC(koniec) - TIME_TO_SEC(NOW()) > 0


znalazłem tylko to w manualau, lecz nie za bardzo dobrze mi to działa. Może ja coś robię źle questionmark.gif
nospor
Przeciez TIME_TO_SEC dziala tylko na czasie. Informuje o tym manual, informują o tym przyklady w manualu.......

http://dev.mysql.com/doc/refman/5.5/en/dat...tion_to-seconds
lukaszmaster
  1. SELECT id, nazwa, z_jezyka, na_jezyk, koniec,UNIX_TIMESTAMP(koniec)-UNIX_TIMESTAMP(NOW()) AS roznica, odslony
  2. FROM zlecenia
  3. WHERE UNIX_TIMESTAMP(koniec) - UNIX_TIMESTAMP(NOW()) > 0


działa.
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.