Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ciekawa operacja na MySQL ile minęło czasu od zaistnienia szukanego progu, obliczenie na dacie i godzinie w tabeli - ile minęło czasu
tombag
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.12.2016

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


Witam serdecznie

chciałem użyć opcji szukania na forum ale wynik wyszukania czegokolwiek to:

Napotkane błędy:
Wystąpił bląd. Wróć i spróbuj ponownie.
connection to localhost:3312 failed (errno=111, msg=Connection refused)

---

Czy orientujecie się czy jest możliwość takiej oto operacji na danych w MySQL

W bazie mamy 3 kolumy

DataCzas Temperatura Nasłonecznienie %

2016-05-12 12:00:00 10 StopniC 25

2016-05-12 13:00:00 15 StopniC 91

2016-05-12 14:00:00 13 StopniC 92

2016-05-12 15:00:00 13 StopniC 91

2016-05-12 16:00:00 12 StopniC 95

2016-05-12 17:00:00 13 StopniC 98

Chcę pobrać z Bazdy Danych informację czy zaistniała sytuacja gdy: nasłonecznienie wyniosło powyżej 90% i trwało minimum 4 godziny.


SELECT * FROM Tabela WHERE Nasłonecznienie % >90 = w ten sposób wyciągamy informacje, która mówi o tym że przekroczono próg 90% + wyciągnięcie daty i czasu ale
chodzi o to czy to nasłonecznienie trwało minimum 4 godziny NIE PRZERWANIE (IMG:style_emoticons/default/smile.gif)

Jeśli tak taką informację wyrzucamy na stronę np : Wystąpiło dobre nasłonecznienie (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/tongue.gif)

Sprawa dotyczy operacji na czasie plus najprawdopodobniej JasaScript


Być może zapytanie przyda się komus innemu ponieważ zadanie jest ciekawe (IMG:style_emoticons/default/smile.gif)


mysql> SELECT TIMEDIFF('2014-02-17 12:10:08', '2014-02-16 12:10:08');
Result: '24:00:00' ?

Proszę o pomoc

Jestem w stanie na tem moment wyciągnąć do JSON datę w której nasłonecznienie > 90

Szukam odpowiedzi być może w JavaScript by przetworzyć te dane

Pomar muszę robić z ok 48 godzin do tyłu i to wszystko

CODE
[{"naslonecznienie":"91","dataczas":"2016-12-01 02:00:00"},
{"naslonecznienie":"92","dataczas":"2016-12-01 03:00:00"},
{"naslonecznienie":"93","dataczas":"2016-12-01 04:00:00"},
{"naslonecznienie":"95","dataczas":"2016-12-01 05:00:00"},
{"naslonecznienie":"96","dataczas":"2016-12-01 06:00:00"},
{"naslonecznienie":"92","dataczas":"2016-12-01 07:00:00"}]


Ten post edytował tombag 24.12.2016, 00:59:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mmmmmmm
post
Post #2





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

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


  1. SELECT * FROM Tabela WHERE `Nasłonecznienie %` >90

Jak juz w ten sposób wyciągniesz sobie godzinę, kiedy przekroczyło 90%, to teraz musisz znaleźć najbliższe, które spadło poniżej 90%. Czyli:
  1. SELECT dataczas początek, (SELECT Min(dataczas) FROM Tabela WHERE dataczas>t.dataczas AND `Nasłonecznienie %`<90) koniec FROM Tabela t WHERE `Nasłonecznienie %` >90

I obliczasz sobie różnicę. I już wiesz, czy trwało mniej, czy też więcej niż 4 h.
Musisz tylko jeszcze odpowiednio zareagować na NULL w `koniec` - może się zdarzyć, gdy takie zdarzenie jeszcze trwa.
Go to the top of the page
+Quote Post
trueblue
post
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


tombag,
a pomiary są dokonywane i zapisywane zawsze co godzinę?
Go to the top of the page
+Quote Post
tombag
post
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.12.2016

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


trueblue tak na razie sobie wpisałem, że co godzinę, na razie to wystarczy.

czyli taki sposób gdzie wybieram sobie w ten sposób komórki spełniające >90%

SELECT * FROM danet where naslonecznienie > 90

i stwarzam nową tablicę w javascript i w niej umieszczam krańcowe wyniki dataczas które zaszły wyżej i na ich podstawie obliczam różnice ile minęło czasu jest chyba podobnym rozwiązaniem, do którego doszedłem jakoś sam (IMG:style_emoticons/default/tongue.gif)

jeszcze niestety nie rozumiem SQL dobrze jestem zielony ale to sie zmienia (IMG:style_emoticons/default/smile.gif)

Ale co oznacza ten NULL na koniec to nie rozumiem :/
Go to the top of the page
+Quote Post
trueblue
post
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


tombag,
nadal nie wiem jak często będą zapisy.
Chciałem tylko wspomnieć, że gdyby zdarzyła się sytuacja rzadszych zapisów, to zapytanie, które podał mmmmmmm nie sprawdzi się.
Np. dla sytuacji:
2016-05-13 10:00:00 90
2016-05-13 15:00:00 20
Choć różnica wynosi 5 godzin, to nie wiadomo przez jaki czas w tym zakresie nasłonecznienie miało wartość >90.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 11:13