Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Porównywanie dwóch dat, Czy data1 i data2 mieści się w przedziale dat z bazy danych
dreamit
post 8.08.2018, 08:28:05
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.07.2018

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


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

Ten post edytował dreamit 8.08.2018, 08:28:20
Go to the top of the page
+Quote Post
bigda
post 8.08.2018, 14:34:16
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.04.2018

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


A w bazie datę masz zapisaną jako jaki rodzaj zmiennej?
Zawsze możesz zmienić datę na czas unixowy.
Go to the top of the page
+Quote Post
dreamit
post 9.08.2018, 06:19:06
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.07.2018

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


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


Ten post edytował dreamit 9.08.2018, 06:19:50
Go to the top of the page
+Quote Post
viking
post 9.08.2018, 06:49:06
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


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.

Ten post edytował viking 9.08.2018, 06:53:11


--------------------
Go to the top of the page
+Quote Post
mmmmmmm
post 9.08.2018, 11:46:56
Post #5





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  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


Ten post edytował mmmmmmm 9.08.2018, 11:47:20
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 14:33