У меня есть база данных MySQL, в которую я записываю данные каждые 10 минут. i.e.:
+---------------------+
| datetime |
+---------------------+
| 2018-09-03 13:01:49 |
| 2018-09-03 12:51:49 |
| 2018-09-03 12:41:49 |
+---------------------+
В моем коде Python я хочу получить только строки, которые "точно" n-часовые, то есть:
+---------------------+
| datetime |
+---------------------+
| 2018-09-03 13:01:49 |
| 2018-09-03 12:01:49 |
| 2018-09-03 11:01:49 |
| 2018-09-03 10:01:49 |
| 2018-09-03 09:01:49 |
| 2018-09-03 08:01:49 |
+---------------------+
У меня есть этот код, который возвращает данные, которые я хочу:
cursor.execute('SELECT max(datetime) FROM temperatures')
last_record_datetime = cursor.fetchone()
last_record_min = last_record_datetime[0].minute
query = f'SELECT * FROM temperatures WHERE DATETIME LIKE "%:%{last_record_min}:%" ORDER BY ID DESC LIMIT 20'
cursor.execute(query)
query_result = cursor.fetchall()
И тут возникает мой вопрос: если я перезагружу систему, или возникнет какая-то проблема или задержка, и минуты в дате-времени последней записи и записи до того, как последняя не будет соответствовать, я получу пустой ответ из базы данных ( потому что запрос ... LIKE "22"
не совпадает с запросом ... LIKE "21"
).
Итак, как лучше всего получить данные из базы данных с некоторым допуском (скажем, + - 4,99 мин)?