如何在python中使用日期范围在mySQL中提取/查询数据

JPC*_*JPC 2 python mysql database date

如何使用python date按天在mySQL中提取数据?说我想要day1并且day2(或一天之后day1)迭代n多次

所以我需要“where”SQL语句中的日期在每次迭代中看起来像下面的列表(n时间)

day1 >= '2012-01-01'  and  day2 < '2012-01-02'    ( n = 1 )
day1 >= '2012-01-02'  and  day2 < '2012-01-03'    ( n = 2 )
.
.
day1 >= yesterday    and day2  < today            ( n times ) 
Run Code Online (Sandbox Code Playgroud)

.

Start_date = '2012-01-01'   <- How can I write this in python
End_date = Today()   <- and this 
Run Code Online (Sandbox Code Playgroud)

所以写:

for each iteration ..
    con.execute("select * from table where date >= day1 and date < day2" )
Run Code Online (Sandbox Code Playgroud)

God*_*Man 5

您需要datetime模块:-

import datetime
start = datetime.date(2012,01,01) 
next = start + datetime.date.resolution

while next <= datetime.date.today():
    print start, next

    con.execute("""
        select * from table where date >= %s and date < %s
    """, (start, next))

    start = next
    next = start + datetime.date.resolution
Run Code Online (Sandbox Code Playgroud)

重要通知:我更新了答案以解决一个严重的问题。从来没有使用字符串格式化(又名%构建SQL查询,因为它是开放的严重问题,其中包括)SQL注入。使用Python-<db_driver>几乎所有 RDMBes 都提供相同语法的 api

execute("select * from blah where x=%s AND y=%s", (x, y))
                                     ^       ^  ^
                                     1       1  2
Run Code Online (Sandbox Code Playgroud)

1] 没有引号,
2] 没有字符串格式