Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL],[PHP] daty pomiędzy
marian84
post
Post #1





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Witam.

Mam pewien problem z wyszukiwaniem wydarzeń pomiędzy datami ...

Przykład:
data rozpoczecia: 2013-01-01, data końca: 52013-05-01

Wyszukiwanie:
data od: 2012-12-24, data do: 2013-02-02

  1.  
  2. mysql_query('SELECT * FROM tabela WHERE date_start>="2012-12-24" AND date_end<="2013-02-02");
  3.  


Wydarzenie zostaje odnalezione

-----------------------------------------------------------

A co w przypadku wybrania daty:
od: 2.1.2013 do 4.01.2013

Brak wyników

-----------------------------------------------------------

Jak mogę skonstruować zapytanie do bazy by wywalilo mi również wydarzenia które aktualnie trwają?

Ten post edytował marian84 17.02.2013, 01:09:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
werek
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 24.04.2007
Skąd: wwa

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


pamiętaj że mysql wewnetrzne nie podane komponenty daty ustawia najniżej tak że twój select:

  1. SELECT * FROM tabela WHERE date_start>="2012-12-24" AND date_end<="2013-02-02"


w rzeczywistości interpretowany jest jako:

  1. SELECT * FROM tabela WHERE date_start>="2012-12-24 00:00:00" AND date_end<="2013-02-02 00:00:00"


wiec prawdopodobnie w tym tkwi twój błąd, staraj się dokładnie określać ramy czasowe vide:

  1. SELECT * FROM tabela WHERE
  2. (date_end>="2012-12-24 00:00:00" AND date_end<="2013-02-02 23:59:59")
  3. OR
  4. (date_start>="2012-12-24 00:00:00" AND date_start<="2013-02-02 23:59:59")
  5. ORDER BY date_start ASC


to załapie ci wszystkie trwajace w danym czasie imprezy niezależnie czy szachodzą początkiem czy końcem.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 11:19