MySQL Min / Max ошибка? - PullRequest
       6

MySQL Min / Max ошибка?

0 голосов
/ 03 февраля 2019

Я хочу получить минимальное / максимальное значение из данных о температуре (daten_temp) моей метеостанции.
Моя база данных называется "wetterdaten", и в этом примере я хочу получить минимальное значение за январь (daten_monat = 01) в этом году (daten_jahr = 2019).
Данные о температуре выглядят следующим образом, например (формат): -0,9 или 14,1 ... и т. д.

Результат: -0,1, но я думаю, что мне нужно-9.4 или как-то так.
У кого-нибудь есть решение?

PHPmyadmin, MySQL 5.6.42, (PHP 7.2)

SELECT MIN(daten_temp)

FROM wetterdaten

WHERE daten_monat = '01'
AND daten_jahr = '2019'
MIN(daten_temp)     
-0.1

Результат -0.1, номне нужно что-то вроде -9.4

1 Ответ

0 голосов
/ 03 февраля 2019

Если значение хранится в виде строки, то вам нужно, чтобы оно интерпретировалось как число.Поскольку строки отсортированы, '-0.1' действительно меньше, чем '-9.4', потому что 0 меньше 9.

Простой механизм в MySQL состоит в добавлении 0 к значению для преобразования в число:

SELECT MIN(daten_temp + 0)
FROM wetterdaten
WHERE daten_monat = '01' AND daten_jahr = '2019';

Тем не менее, температуры являются числами и должны храниться как таковые.Я бы порекомендовал:

alter table wetterdaten modify column daten_temp decimal(6, 3);
...