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

Abh*_*lve 17 sql postgresql intervals

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

他们的任何功能是否会帮助我将其转换为间隔,或者我应该将其除以60并获得最终结果

20 minutes will be like 00:20:00 as result 
Run Code Online (Sandbox Code Playgroud)

Eva*_*oll 24

最快的方式是 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)
Run Code Online (Sandbox Code Playgroud)

所以它看起来像这样(由@Teddy建议)

SELECT make_interval(mins => 20);
Run Code Online (Sandbox Code Playgroud)

要么,

SELECT make_interval(0,0,0,0,0,20);
Run Code Online (Sandbox Code Playgroud)

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

SELECT 20 * '1 minute'::interval;
Run Code Online (Sandbox Code Playgroud)

  • 为什么不简单地使用`make_interval(mins := 20)`? (2认同)

Vao*_*sun 7

您可以使用以下命令连接该整数' 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
Run Code Online (Sandbox Code Playgroud)

更新

或者:interval '1' minute * n正如 a_horse_with_no_name 所说