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

时间:2017-04-27 11:43:07

标签: sql postgresql intervals

我试图在postgres中将整数分钟转换为间隔

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

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

3 个答案:

答案 0 :(得分:21)

最快的方法是使用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;

答案 1 :(得分:3)

您可以使用' 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 as a_horse_with_no_name表示

答案 2 :(得分:0)

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