Как получить из базы данных sqlite3 минимальное / максимальное значение температуры? - PullRequest
0 голосов
/ 10 января 2019

У меня есть база данных sqlite3 с сохраненными значениями температуры в таблице:

Данные | Адрес | * температура 1003 *

2019-01-06 19: 00: 17 | 28FF24E08416043D | 12,6

2019-01-06 19: 05: 50 | 28FF24E08416043D | -1.0

2019-01-06 19: 10: 17 | 28FF24E08416043D | 18,0

2019-01-06 19: 15: 17 | 28FF24E08416043D | -4,4

2019-01-06 19: 20: 16 | 28FF24E08416043D | -7,3

2019-01-06 20: 50: 18 | 28FF24E08416043D | -8,1

И мне нужно получить 2 значения (мин и макс в этот день), например: -8,1 и 18,0, но этого не происходит.

Если я попробую:

SELECT data,min(temperatura) FROM czujniki 
    where adres='28FF24E08416043D' and data>='2019-01-06' and data<='2019-01-07'

У меня есть: 2019-01-06 19: 05: 50 | -1.0

что не соответствует действительности, потому что более низкая температура в этот день составляет -8,1 с другой стороны, если я попробую максимальное значение, у меня будет 18,0 - ОК Но в другой день у меня только значения ниже нуля, а минимальное значение равно -9,9, а максимальное равно -10,0

.

Я запутался, как это правильно сделать?

1 Ответ

0 голосов
/ 10 января 2019

Вы должны привести temperatura к десятичному значению:

SELECT data,min(CAST(temperatura as decimal)) FROM czujniki 
    where adres='28FF24E08416043D' and data>='2019-01-06' and data<='2019-01-07'

Конечно, чтобы избежать этих проблем, лучше переопределить столбец temperatura как decimal или numeric и , а не text.

...