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

新手上路,请多包涵

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

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

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

原文由 Abhijeet Gulve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 715
2 个回答

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

原文由 Evan Carroll 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以将该整数与 ' 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 所说

原文由 Vao Tsun 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进