Изглежда, че съхранявате числови стойности като низове. Наистина трябва да коригирате данните. Но можете да коригирате заявката. Според мен най-простият метод е имплицитно преобразуване:
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;
Имайте предвид, че pressure
и condition
не са във вашата GROUP BY
, така че стойностите се избират от произволни редове. Това е наистина лоша практика и означава, че вашата заявка няма да работи в почти никоя друга база данни.
Можете да коригирате данните, като направите нещо като:
alter table infoboard.forecasts
modify column temp_min decimal(6, 3),
modify column temp_max decimal(6, 3);
Подозирам, че бихте искали да направите същото за pressure
също.