sqlalchemy / postgresql:获取查询的数据库'as-of'时间戳

时间:2017-10-19 07:06:47

标签: postgresql sqlalchemy

我正在使用SQLAlchemy和Postgresql,我正在进行复杂的查询(可能导致没有行),我需要从服务器获得的结果的“as-of timestamp”(即当前的时间戳)此查询由数据库执行。)

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

如果您在交易中执行查询,则localtimestamp将参考交易开始时间。

例如:

with engine.begin() as t:
    print(t.execute("SELECT localtimestamp").fetchone()[0])
    time.sleep(2)  
    print(t.execute("SELECT localtimestamp").fetchone()[0])

打印哪些:

2017-10-19 09:52:44.646723
2017-10-19 09:52:44.646723

即。 localtimestamp在事务持续期间保持不变。

答案 1 :(得分:0)

您可以通过运行以下查询来实现此目的:

select query_start
from pg_stat_activity
where query = 'YOUR_QUERY_HERE'

这为您提供了查询在PostgreSQL中的数据库中开始执行的时间。您还可以使用查询的pid等其他标识符查找查询的开始时间。

当然,有很多关于可以使用pg_stat_activity表从PostgreSQL中获取的查询的数据。您可以访问this链接了解更多信息。

相关问题