python-3.x - 我需要一个 for 循环,它可以为我提供 2 个日期之间的日期
问题描述
我需要一个for
循环,为我的 sqlite3 查询提供当前日期和 7 天前之间的日期和月份值。例如
for day in range(7DaysAgo, Today):
或者如果有更好的方法从数据库中获取过去 7 天的数据,将不胜感激。
这是我拥有的 31 天,但如果有意义的话,我需要它是从当前日期开始的 31 天,而不是每个月的 31 天。我在 matplotlib 图上绘制数据。
def animate(i=1):
var.set((time.strftime("%H:%M")))
Fig_plot.clear()
xList_30Day = []
yList_30Day = []
for DAY in range(31):
Total_Day = 0
c.execute('SELECT Day, Month, Bank FROM CRJ WHERE Month=? AND Day=?',(time.strftime("%m"),DAY))
for row in c.fetchall():
## print(row)
Total_Day += row[2]
xList_30Day.append(DAY)
yList_30Day.append(Total_Day)
Fig_plot.plot(xList_30Day,yList_30Day)
数据库列的
CREATE TABLE "CRJ" ( "ID" REAL, "Day" INTEGER, "Month" INTEGER, "Year" INTEGER, "Time" INTEGER, "Description" TEXT, "Amount" RAEL, "Bank" RAEL, "Item" TEXT , "QTY" TEXT, "Payment_Type" TEXT, "Cashier" TEXT );
解决方案
当然,如果你真的想要一个在 python 中给出一个日期之间的循环,你可能会得到它:
from datetime import date as dt, timedelta
today = dt.today()
date = today - timedelta(days=31)
step = timedelta(days=1)
for i in range(31):
date += step
...
c.execute('SELECT Year, Day, Month, Bank FROM CRJ WHERE Year=?, Month=? AND Day=?',(date.year, date.month, date.day))
...
只是,对我来说,执行 31 个查询似乎不是一个好主意,如果有可能获得相同的查询。
推荐阅读
- octobercms - 上传插件按钮不起作用 octobercms
- android - 启用 proguard 和缩小后,通知在发布模式下不起作用
- html - 如何在侧边栏中制作dropright?
- php - 如何使用带有 jquery/ajax 的推送器创建聊天框?
- c# - 使用 UIAutomation 获取按钮的路径
- azure-devops-rest-api - 使用 Azure Devops 的“请求访问”API
- python-3.x - 如何检查用户的输入是否为字符串类型,如果不是,则停止进一步执行代码?
- r - 我可以在 summarise_all 中应用过滤器吗?
- ios - 呈现视图后,活动指示器仅在同一视图上显示一次
- android - 布局鼓励意外点击 - 意外启动插页式广告