Stránka 1 z 1

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

Odeslat příspěvekNapsal: 2. 1. 2019 19:45
od pavel.svejda
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ě?

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

Odeslat příspěvekNapsal: 2. 1. 2019 20:03
od Doggg
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.

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

Odeslat příspěvekNapsal: 2. 1. 2019 20:53
od pavel.svejda
Přetypování sloupce na decimal, již je to OK. Díky