我编写了一个python函数,用于使用Sensor的测量结果更新两个SQLite.db文件表。我每隔15分钟在Raspberry Pi上存储数据。
由于SD卡的硬盘空间有限(16GB),我需要删除动态数据。很明显,我需要一种在第一天(4行/小时),第一周(1周/小时),第一个月(1个月/ 2个小时)和过去一个月(1个月/ 4个小时)之后删除数据的算法。最后,应删除所有早于一年的数据。
以下是更新数据的功能:
def database(save_to_db): #save_to_db is a list with humidity[0] OR temperature[0] and integers of year[1], month[2], day[3], time[4]
conn = sqlite3.connect('database.db') #connect to database "database.db"
cur = conn.cursor() #create a cursor
#______Which measure is determined? ('%' = humidity, 'C' = temperature)_____
if '%' in save_to_db[0]:
#______Insert a row with index, humidity, date, time
cur.execute(('''INSERT INTO hum VALUES (
NULL, ?,?,?,?,?)''')
(save_to_db[0], save_to_db[1], save_to_db[2], save_to_db[3], save_to_db[4]))
elif 'C' in save_to_db[0]:
#______Insert a row with index, temperature, date, time
cur.execute(('''INSERT INTO tem VALUES (
NULL, ?,?,?,?,?)'''),
(save_to_db[0], save_to_db[1], save_to_db[2], save_to_db[3], save_to_db[4]))
conn.commit() #save the determined rows
conn.close() #close connection to DB
现在我想查询新的一天是否已经开始。如果是这样,则应调用新函数来删除数据。它不是真正的动态,但我认为应该足以每天删除一次数据。我不知道我怎么做到这一点。
我是python和SQLite的新手。