按当前时间查询(postgres,psycopg2,python)

时间:2017-06-15 18:27:55

标签: python sql postgresql flask psycopg2

我正在制作一个使用psycopg2查询postgreSQL数据库的Flask应用程序。数据库有一列时间戳,格式为YYYY-MM-DD HH:MI:SS。我想打印的结果只匹配当前时间到分钟(我查询数据库的那一刻)。我认为我正在寻找的是动态查询。

例如,这里我想打印当前活跃的用户数。

def userCount(conn):
    cur = conn.cursor()
    cur.execute("SELECT * from user_list WHERE timestamps = ?")
    print 'Users currently active: ' + str(len(cur.fetchall()))

我已尝试在问号上方放置几个不同的内容,包括使用python&timers模板定义的变量 dt 。什么都没有用 - 我要么最终得到数据库中所有用户的计数,要么是该列不存在的错误。

重申一下,我知道如何指定日期时间参数,但我需要的是CURRENT日期时间。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

 intervalInSecs = 30;

 def userCount(conn):
        cur = conn.cursor()
        cur.execute("SELECT * from user_list WHERE timestamps > (current_timestamp - make_interval(secs := %s))", [intervalInSecs])
        print 'Users currently active: ' + str(len(cur.fetchall()))

答案 1 :(得分:0)

您可以使用数据库日期吗?

WHERE timestamps = current_date

或者,如果值存储为字符串:

WHERE timestamps = TO_CHAR(current_date, 'YYYY-MM-DD')