我正在使用SQLAlchemy和Postgresql,我正在进行复杂的查询(可能导致没有行),我需要从服务器获得的结果的“as-of timestamp”(即当前的时间戳)此查询由数据库执行。)
我怎么能实现这个目标?
答案 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链接了解更多信息。