Я пытаюсь использовать sqlite3 для доступа к данным в базе данных на основе значения для метки даты.Пожалуйста, рассмотрите следующий код:
live_db_conn = sqlite3.connect('/Users/user/Documents/database.db')
time_period = (dt.now() - timedelta(seconds=time)).strftime('%H:%M:%S')
time_period_data = pd.read_sql_query('SELECT * FROM table1 WHERE Datestamp > {}'.format(str(time_period)), live_db_conn)
Когда я запускаю этот код, я получаю следующую ошибку:
pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT * FROM table1 WHERE Datestamp > 12:33:33': near ":33": syntax error
Я не понимаю, откуда эта ошибка, потому что, если я запускаюследующий код:
df = pd.read_sql_query('SELECT Datestamp FROM table1 LIMIT 10', live_db_conn)
print(df)
Я получаю следующий вывод:
Datestamp
0 10:46:54
1 10:46:59
2 10:47:04
3 10:47:09
4 10:47:14
5 10:47:19
6 10:47:24
7 10:47:29
8 10:47:34
9 10:47:39
Так что (мне кажется, по крайней мере), что мой sql-запрос правильный.Я пытался сделать .format(time_period)
вместо .format(str(time_period))
, но я не могу понять, что я делаю неправильно.
Вопрос: Как выбрать частьданные, которые соответствуют выбранному периоду времени?
Редактировать: Кажется, что-то не так с минутами в отметке времени.Когда я снова запустил код, я получил ту же ошибку, но с другой отметкой времени:
pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT * FROM table1 WHERE Datestamp > 12:49:10': near ":49": syntax error
Так что я бы сказал, что синтаксическая ошибка связана с минутами в отметке времени ..