Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql]Wybieranie rekordów z zakresu timestamp
dado
post
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


Witam. Męczę sie już kilka dni z pewnym zapytaniem.
Robię kalendarz wydarzeń i mam problem z wybieraniem wydarzeń do kalendarza. Zapytanie ma wybrać wszystkie zdarzenia które zaczynają się, trwają lub kończą w podanym czasie widełek daty. Niestety zapytanie wybiera tylko te rekordy które albo zaczynają się albo kończą w podanych widełkach ale nie wybiera tych które trwają w podanych widełkach choć mogą się zaczynać wcześniej lub kończyć później

  1. SELECT
  2. a.task_id,
  3. a.task_name,
  4. a.task_start,
  5. a.task_end,
  6. a.task_status,
  7. a.user_id,
  8. b.user_name,
  9. b.user_type_id,
  10. c.task_id AS task_invite
  11. FROM
  12. cal_task a
  13. JOIN
  14. cal_users b ON(a.user_id=b.user_id)
  15. LEFT JOIN
  16. cal_task_merge_users c ON(a.task_id = c.task_id)
  17. WHERE(
  18. a.task_start_date BETWEEN '".date("Y-m-d H:i:s", $start)."' AND '".date("Y-m-d H:i:s", $end)."'
  19. )
  20. GROUP BY
  21. a.task_id
  22. ORDER BY
  23. a.task_start ASC
  24. ;


struktura tabeli głównej
  1. Pełny tekst task_id user_id enterprise_id task_status task_start task_end task_start_date task_end_date task_name task_descr task_note task_buynote


Ten post edytował dado 18.08.2011, 18:15:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Cytat
spróbuj zrobić subQuery do tego wybierając wszystkie wyniki mające początek mniejszy od start i koniec większy od end


Bzdura.


Musisz mieć 3 warunki:
1. Data startu pomiędzy Początek i Koniec (czyli koniec może być za datą końcową)
2. Data zakończenia pomiędzy początek a koniec (czyli początek może być przed datą początkową)
3. Data startu mniejsza niż Początek i data zakończenia większa niż koniec (dla tych zadań które obejmują swoim zasięgiem cały zakres)

Może jest lepsze rozwiązanie, ale to jest to co mi na tą chwilę przychodzi na myśl (IMG:style_emoticons/default/wink.gif)

@edit: oczywiście OR'y a dla ostatniego OR ( if1 AND if2 )

Ten post edytował melkorm 18.08.2011, 19:10:06
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: 11.10.2025 - 01:47