繁体   English   中英

在 Python 中,我嵌入了 2 组日期之间的 SQL 代码。 如何循环python代码以在日期之间运行多组

[英]In Python I have embedded SQL code with 2 sets of between dates. How to loop the python code to run multiple sets of between dates

如果我的问题很奇怪或令人困惑,我对此很陌生,所以很抱歉。 在 python 中,我有一个嵌入式 SQL 查询,它在数据日期之间有 2 个。 我有几个日期,我想通过整个月的每个“日期集之间”循环此代码。 我觉得我缺少一个可以帮助解决此问题的软件包,而且我还没有找到遵循此类内容的教程。 说例如缘故。 List of between dates 2020-02-01 AND 2020-02-05, 2020-02-02 AND 2020-02-06, 2020-02-03 AND 2020-02-07, ... all the way to ... 2020-02-28 AND 2020-03-04

到目前为止我所处的位置是这个,我无法弄清楚如何为此设置一个数组。

import psybopg2
import getpass
import pandas

con = psybopg2.connect(host="blah",database="blah",user=getpass.getpass

cur.execute("""

SELECT
Address
,Create_Data
,Event_Date

FROM
table.a

WHERE
Create_Date between '2020-03-20' AND '2020-03-25' --(want to insert set of dates from the list
AND 
Event_Date between '2020-03-20' AND '2020-03-25' --(want to insert the same between date used above

""")

output = cur.fetchall ()

data = pd.DataFrame(output)

cur.close()
con.close()`

使用datetimetimedelta

from datetime import datetime

start_date = "2020-02-01"
stop_date = "2020-02-28"

start = datetime.strptime(start_date, "%Y-%m-%d")
stop = datetime.strptime(stop_date, "%Y-%m-%d")

from datetime import timedelta
while start < stop:
    first_date = start #first date for between
    second_date = start + timedelta(days=4) #second date for between
    #Use the above in sql query
    start = start + timedelta(days=1)  # increase day one by one

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM