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

Querying by current time (postgres, psycopg2, python)

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

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

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

我试过在上面的问号处放置几个不同的东西,包括使用 python 的日期时间模块定义的变量 dt。没有任何效果——我要么最终得到数据库中所有用户的计数,要么得到该列不存在的错误。

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

可以使用数据库日期吗?

WHERE timestamps = current_date

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

WHERE timestamps = TO_CHAR(current_date, 'YYYY-MM-DD')
 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()))