PostgreSQL:我可以检索 log_min_duration_statement 作为整数吗?

xte*_*xte 2 postgresql settings

我的问题如下:

我更新了 postgreSQL 文档(使用 9.5 版)中描述为整数的设置“log_min_duration_statement”。我使用以下查询来更新它:“将log_min_duration_statement 设置为 [numberOfMilliseconds]

当我尝试获取更新的值时,我得到一个以毫秒(如"250ms")或以秒为单位(如"10s")格式化的持续时间字符串。我使用“SHOW log_min_duration_statement”来检索值。我想将该值检索为表示毫秒的整数,而不是将其格式化为具有不同单位的文本。

有谁知道这样做的方法?

非常感谢您的时间!

Abe*_*sto 5

SHOW log_min_duration_statement区间类型输入兼容形式返回文本值。

所以它可以转换为interval类型,但不能使用SHOW命令。所以让我们改用current_setting函数:

select current_setting('log_min_duration_statement')::interval;
Run Code Online (Sandbox Code Playgroud)

然后将间隔转换为毫秒:

select extract(epoch from current_setting('log_min_duration_statement')::interval) * 1000;
Run Code Online (Sandbox Code Playgroud)