是否在Sqlite3中获取当前周数据?

py49o6xq  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(163)

我正在尝试从sqlite3数据库中获取当前周的记录,或者至少获取当前日期和未来7天之间的所有记录,我已经通过BETWAGE方法完成了这项工作,但它不能正常工作,并且它从下一年中提取记录。
代码:

self.con = sqlite3.connect('car dealership.db')
self.cursorObj = self.con.cursor()

date = datetime.now()
now = date.strftime(('%d-%m-%Y'))
self.bb = datetime.now() + timedelta(days=7) 
self.newbb_week = self.bb.strftime('%d-%m-%Y')

self.buying_checks_row_main_week = self.cursorObj.execute('SELECT sellername,  paymentdate,  paymentvalue, car FROM cars_buying_checks  WHERE paymentdate BETWEEN (?) AND (?)',(now, self.newbb_week))

self.buying_checks_row_main_week_output = self.cursorObj.fetchall()

问:有没有更好的方法从sqlite3数据库中获取当前一周的记录数据?

hec6srdp

hec6srdp1#

您的问题是将日期格式设置为%d-%m-%Y,这在BETWEEN表达式中不起作用,因为它使用字符串比较;例如,日期10-01-2999将介于09-01-202211-01-2022之间。您需要将它们格式化为%Y-%m-%dBETWEEN才能正常工作。
如果表中的日期没有被格式化为%Y-%m-%d,那么您将需要更新该表以将它们转换为该格式,使用如下所示:

UPDATE cars_buying_checks
SET paymentdate = SUBSTR(paymentdate, 7, 4) || '-' || SUBSTR(paymentdate, 4, 2) || '-' || SUBSTR(paymentdate, 1, 2)

相关问题