Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JOIN po polu DATETIME przy datach różniących się sekundami
Forum PHP.pl > Forum > Bazy danych > MySQL
jurcio6
Witam.

Mam pewien problem - próbuję stworzyć zapytanie, które z trzech różnych tabel pobiera po 3 różne pola i joinem łączy je w jedną tabelę. Każda z tych tabel posiada pole typu DATETIME, po którym chciałbym zrobić tego JOINA, jednak istnieje zasadniczy problem: w tabelach odczyty pojawiają się raz na minutę, jednak zwykle sekundy odczytów w poszczególnych tabelach nie są ze sobą zgodne. Jak wykonać takiego JOIN'a, który by łączył tabele po minutach?

Przykład:
Mam tabele a, b, c z przykładowym rekordem:

tabela a
a1 | a2 | a3 | a4 | a5 | adt
1 | 1 | 1 | 1 | 1 | 2012-01-18 10:01:28

tabela b
b1 | b2 | b3 | b4 | b5 | bdt
1 | 1 | 1 | 1 | 1 | 2012-01-18 10:01:37

tabela c
c1 | c2 | c3 | c4 | c5 | cdt
1 | 1 | 1 | 1 | 1 | 2012-01-18 10:01:11

W rekordach poszczególnych tabel, jak widać, różnią się sekundy w polu DATETIME. Teraz jak zrobić zapytanie, które by zwróciło np. taki wynik:
a1 | a2 | b3 | b4 | c5 | dt
1 | 1 | 1 | 1 | 1 | 2012-01-18 10:01

Proszę o pomoc, bo nie mogę tego w żaden sposób zwalczyć.

P.S. Mam przy okazji tego jeszcze jedno pytanie - czy da się wykryć przyrost jakiejś wartości w tabeli? Chodzi konkretnie o pobranie wszystkich rekordów, w których stwierdzono przyrost/zatrzymanie przyrostu w stosunku do poprzedniej wartości.
nospor
manual mysql: funkcje obsługi czasu. Tam masz funkcję do formatowania czasu. Formatujesz czas do minut i sobie porównujesz sformatowane czasy
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.