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

问题描述 投票:0回答:1

我对此并不陌生,如果我的问题很奇怪或令人困惑,对不起。在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()`
python sql arrays date vector
1个回答
0
投票

使用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
© www.soinside.com 2019 - 2024. All rights reserved.