如何在PostgreSQL中为日期添加可变的小时数?

Dan*_*ola 32 postgresql datetime

显然,PostgreSQL没有DATEADD,因为你可以只使用+-运算符.

我需要在日期中添加一些小时,这样就完成了:

date_field + interval '8.25 hour' 
Run Code Online (Sandbox Code Playgroud)

这很棒,但是我需要从表格中的字段中获得的小时数.会是这样的:

date_field + interval start_time 'hour' 
Run Code Online (Sandbox Code Playgroud)

我无法在任何地方找到如何做到这一点.这实际上不可能吗?

我不介意使用丑陋的黑客,比如取场值并除以3600,乘以86400.无论我需要做什么,但我也没有办法做到这一点.

Erw*_*ter 65

由于你想增加几小时,它应该是:

SELECT date_field + interval '1h' * start_time
Run Code Online (Sandbox Code Playgroud)

start_time 可以是任何数值.


Dan*_*ola 6

在另一个SO问题中找到了答案:

date + interval '1' minute * FLOOR(start_time * 60)
Run Code Online (Sandbox Code Playgroud)

希望能帮助任何人


Wil*_*e Z 6

对我有用的是

SELECT date_field + interval '1' HOUR * start_time
Run Code Online (Sandbox Code Playgroud)

start_time可以是任何数值。