Psycopg2,根据日期/时间选择

时间:2015-07-09 15:25:25

标签: python postgresql

我希望能够从数据库的某个时间范围中进行选择。这就是我现在所拥有的,但它只选择所有行。

try:
    cur.execute("SELECT * from people_counter")
except:
    print "cannot select from node"
    sys.exit()

node_rows = cur.fetchall()

数据库设置有三行,如下所示,

  

unit_id,time_stamp,direction

     

文字,带时区的时间戳,文字

数据库是Postgresql DB,使用python和pyscopg2作为包装器。

我并不完全理解如何在数据库中指定某个列作为日期/时间,以便仅从特定时间范围内选择行。

1 个答案:

答案 0 :(得分:2)

您可以在查询中指定值

cur.execute("""SELECT * 
               FROM people_counter 
               WHERE time_stamp BETWEEN 
                   date '2015-06-01' and 
                   date '2015-06-30';""")

as parameters

import datetime as dt
cur.execute("""SELECT * 
               FROM people_counter 
               WHERE time_stamp BETWEEN %s and %s;""", 
            (dt.date(2015,6,1), dt.date(2015,6,30)))