'MySQL: selecting dates (from timestamp) for which condition (related to other fields in the row) is fulfilled

My SQL knowledge is rather weak and I come from procedural programming, so bear with me. I have a database that contains data from a weather station - these are collected each minute and the (important part of the) table is

MariaDB [weather]> describe readings;
+------------------+------------+------+-----+-------------------+-------+
| Field            | Type       | Null | Key | Default           | Extra |
+------------------+------------+------+-----+-------------------+-------+
| time             | timestamp  | NO   | PRI | CURRENT_TIMESTAMP |       |
| inside_temp      | float      | YES  |     | NULL              |       |
| outside_temp     | float      | YES  |     | NULL              |       |
+------------------+------------+------+-----+-------------------+-------+

I want to find all days where the outside_temp was not lower and not larger than some values.

I can code it externally using MySQL for queries like

select min(outside_temp), max(outside_temp) from readings where date(time)='2022-01-27';

and iterating over all days in the database to check temperature values for each day separately, but I wonder if it is possible to do the selection just using MySQL command (I suppose it is, just beyond my imagination).



Solution 1:[1]

Something like select date(time), min(outside_temp), max(outside_temp) from readings group by date(time); would give you all timestamps that meet the requirements

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1