[MySQL] výpis max a min teploty za předchozí den

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod pavel.svejda 2. 1. 2019 19:45

Zdravím,
do databáze posílám z teploměru hodnotu ve tvaru např. 3.15 nebo zápornou -3.15.
Tabulka má sloupce ID (AUTO_INCREMENT), cas (CURRENT_TIMESTAMP), temp (varchar(20)).
Dotazem "SELECT cas, temp FROM test WHERE cas BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()" se mi zobrazí všechny záznamy předchozího dne, max a min teplota se nezobrazí za pomocí ... ORDER BY temp LIMIT 1, ... ORDER BY temp DESC LIMIT 1, SELECT cas, MIN(temp) FROM ..., SELECT cas, MAX(temp) FROM ....
Co kde je špatně?
pavel.svejda
Junior

Odeslat příspěvekod Doggg 2. 1. 2019 20:03

Nemám morál na to studovat implementace datových typů v MySQL, ale obecně mi nepřijde jako dobrý nápad ukládat číselná data do textové proměnné. Krom toho, že různé operace mohou být pomalejší, tak i řazení bude lexikální a nikoli číselné (třeba právě co znamená funkce max pro text). Čímž neříkám, že to Nutně vyřeší tvůj problém, ale minimálně je to antipatern.

Zdali by to pomohlo zkus tudy
ORDER BY convert(`temp`, decimal), pokud to pomůže pretypoval bych sloupec do decimal, anzto toto bude docela heavy dotaz.
Doggg
Junior

Odeslat příspěvekod pavel.svejda 2. 1. 2019 20:53

Přetypování sloupce na decimal, již je to OK. Díky
pavel.svejda
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků