Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nakładanie przedziałów czaoswych.
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Milczar
Witam.
Mam w bazie danych termin czasowy (od-do): kolumna START (data rozpoczęcia) i kolumna STOP (koniec) - obie kolumny typu timestamp bez TZ.
Potrzebuję sprawdzać czy podany przez użytkownika przedział czasowy (2daty: start i stop) nakłada sie, ma część współną, z przedziałem czasowym pobranym z bazy.
Nie wiem czy jest na to jakiś sposób w psql lub php - chciałbym uniknąć sprawdzania kolejno kilku warunków if'ami.
Pozdrawiam.
kszychu
... WHERE (START BETWEEN czas_start AND czas_stop) OR (STOP BETWEEN czas_start AND czas_stop) OR (START <= czas_start AND STOP >= czas_stop)

Oczywiście zakładam, że sql postgresa obsługuje between.
behemot
w postgresie mamy tez operator overlaps

  1. SELECT *
  2. FROM okresy
  3. WHERE (from_date,to_date) overlaps ('2006-05-07'::date,'2006-05-12'::date);



pozdrawiam,
kuba
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.