В Python я встроил SQL код с 2 наборами между датами. Как l oop код python для запуска нескольких наборов между датами - PullRequest
0 голосов
/ 23 марта 2020

Я новичок в этом, поэтому извините, если мой вопрос странный или запутанный. В python у меня есть встроенный запрос SQL, который имеет 2 между датами для данных. У меня есть несколько дат, которые я хочу, чтобы l oop этот код проходил через каждый «между наборами дат», которые у меня есть за весь месяц. Я чувствую, что мне не хватает пакета, который помог бы с этим, и я не нашел учебник, чтобы следовать что-то вроде этого. Скажем, например, ради. 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()`

1 Ответ

0 голосов
/ 23 марта 2020

Используйте datetime и timedelta:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...