Vous semblez stocker numérique valeurs sous forme de chaînes. Vous devriez vraiment corriger les données. Mais, vous pouvez corriger la requête. À mon avis, la méthode la plus simple est la conversion implicite :
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;
Notez que la pressure
et condition
ne sont pas dans votre GROUP BY
, les valeurs sont donc choisies à partir de lignes arbitraires. C'est une très mauvaise pratique, et cela signifie que votre requête ne fonctionnerait pas dans presque toutes les autres bases de données.
Vous pouvez corriger les données en procédant comme :
alter table infoboard.forecasts
modify column temp_min decimal(6, 3),
modify column temp_max decimal(6, 3);
Je soupçonne que vous voudriez faire la même chose pour la pressure
aussi.