在 PostgreSQL 中将整数从小时转换为时间

shi*_*893 3 sql postgresql syntax time casting

我有一个数字传递为integer,想将其转换为time,并使用该数字作为小时。

我找到了使用数字作为分钟的解决方案,但我不熟悉 PostgreSQL 语法。不知道在这里做什么:

select CAST(to_char(czas, 'FM99909:99') AS TIME WITHOUT   
TIME ZONE)::TIME from test
Run Code Online (Sandbox Code Playgroud)

结果将是:

00:15:00
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种方法来实现它:

15:00:00
Run Code Online (Sandbox Code Playgroud)

我使用 MS SQL 已经有一段时间了,我很惊讶 PostgreSQL 语法要复杂得多。

Erw*_*ter 6

如果您的列test.czas表示小时,只需乘以interval '1 hour'

SELECT (interval '01:00' * czas)::time FROM test;
Run Code Online (Sandbox Code Playgroud)

即使使用小数位,也能准确产生您想要的结果。

'01:00''1 hour'是等价的interval文字
对于czas> 24,您将获得剩余的时间(截止全天) - 就像您使用czas%24.

有关的: