如何在postgres中将整数分钟转换为间隔

how to convert integer minutes to interval in postgres

我正在尝试将整数分钟转换为 postgres 中的间隔

他们是否有任何函数可以帮助我将它转换为间隔,或者我应该将它除以 60 并得到最终结果

20 minutes will be like 00:20:00 as result 

你可以用 ' minutes':

连接那个整数
t=# with i as (
  select 20::int n
)
select concat(n,' minutes')::interval 
from i;
  concat
----------
 00:20:00
(1 row)

Time: 1.220 ms

更新:

或:interval '1' minute * n如a_horse_with_no_name所述

最快的方法是 make_interval

make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)

所以它看起来像这样(根据@Teddy 的建议)

SELECT make_interval(mins => 20);

或者,

SELECT make_interval(0,0,0,0,0,20);

并不是说那是最干净的,如果速度不是问题,我更喜欢@a_horse_with_no_name提到的*方法

SELECT 20 * '1 minute'::interval;

如果您尝试在 interval 列中插入数据,您可以使用整数秒,PostgreSQL 会将其转换为间隔。