MySQL Min/Max 错误?
MySQL Min/Max bug?
我想从我的气象站的温度数据 (daten_temp) 中获取 minimum/maximum 值。
我的数据库名称是 "wetterdaten",在此示例中,我想获得今年(daten_jahr = 2019)中一月(daten_monat = 01)的最小值。
温度数据看起来像这样,例如(格式): -0.9 或 14.1 ... 等等
结果是:-0.1 但我想我需要 -9.4 或类似的东西。
有人有解决方案吗?
PHP我的管理员,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 的值
如果该值存储为字符串,则需要将其解释为数字。字符串排序后,'-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);
我想从我的气象站的温度数据 (daten_temp) 中获取 minimum/maximum 值。
我的数据库名称是 "wetterdaten",在此示例中,我想获得今年(daten_jahr = 2019)中一月(daten_monat = 01)的最小值。
温度数据看起来像这样,例如(格式): -0.9 或 14.1 ... 等等
结果是:-0.1 但我想我需要 -9.4 或类似的东西。
有人有解决方案吗?
PHP我的管理员,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 的值
如果该值存储为字符串,则需要将其解释为数字。字符串排序后,'-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);