Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Porównywanie dwóch dat
Forum PHP.pl > Forum > Przedszkole
dreamit
W bazie danych mam następujące rekordy
date rozpoczęcia taką:
2018-08-08 08:00:00

a datę zakończenia taką
2018-08-08 10:00:00

Użytkownik podał np: data_rozp: 2018-08-08 09:30:00 --- data_zak: 2018-08-08 10:00:00

ale jak daje zapytanie do bazy (na sztywno)
  1. SELECT * FROM tabela WHERE data_rozp >= '2018-08-08 09:30:00' AND data_zak <= '2018-08-08 10:00:00'


to zwraca pusto, no na logike to dobrze zwraca bo zle ulozylem to powyzsze zapytanie, ale nie wiem jak je ulozyc poprawnie, próbowałem z BETWEEN ale cos kiepsko wychodzilo

a moim celem jest wyszukanie wszystkich rekordów których data_rozp i data_zak jest w przedziale: 2018-08-08 09:30:00-2018-08-08 10:00:00
bigda
A w bazie datę masz zapisaną jako jaki rodzaj zmiennej?
Zawsze możesz zmienić datę na czas unixowy.
dreamit
a co mi wtedy to daje pod wzgledem zapytania? jak zmienić ten czas? jakby mialo wtedy wygladac zapytanie?

data_rozp i data_zak typu DATATIME yyyy-mm-dd hh:mm:ss
viking
Ja bym się tu pobawił interwałami czasowymi, załóżmy +/- 2 godziny od podanych przez użytkownika dat. Ewentualnie wybrać te rekordy których timestampdiff() jest najmniejszy.
mmmmmmm
  1. SELECT * FROM tabela WHERE data_rozp <= '2018-08-08 09:30:00' AND data_zak >= '2018-08-08 10:00:00'

lub
  1. SELECT * FROM tabela WHERE '2018-08-08 09:30:00' BETWEEN data_rozp AND data_zak AND '2018-08-08 10:00:00' BETWEEN data_rozp AND data_zak
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.