Wygląda na to, że przechowujesz liczbę wartości jako ciągi. Naprawdę powinieneś naprawić dane. Ale możesz naprawić zapytanie. Moim zdaniem najprostszą metodą jest konwersja niejawna:
SELECT MIN(`temp_min` + 0) AS `temp_min`,
MAX(`temp_max` + 0) AS `temp_max`,
`dt_txt`, DAYNAME(`dt_txt`) AS `dayname`,
`pressure`, `condition`, `dt_txt`
FROM infoboard.forecasts
WHERE `dt_txt` >= CURDATE()
GROUP BY `dt_txt`
ORDER BY `dt_txt` ASC;
Zwróć uwagę, że pressure
i condition
nie znajdują się w Twojej GROUP BY
, więc wartości są wybierane z dowolnych wierszy. To naprawdę zła praktyka i oznacza, że Twoje zapytanie nie zadziałałoby w prawie żadnej innej bazie danych.
Możesz naprawić dane, wykonując coś takiego:
alter table infoboard.forecasts
modify column temp_min decimal(6, 3),
modify column temp_max decimal(6, 3);
Podejrzewam, że chciałbyś zrobić to samo dla pressure
również.