表达式,包括用于postgres间隔类型的值的函数

问题描述 投票:0回答:2

postgres db中有没有办法。在区间类型中具有表达式? ,例如我可以执行查询-

select (timestamp '1970-01-01 00:00:00' + interval '1 second' * J0.C3) from T637 J0

现在,我需要能够动态地操纵'1秒'的值,这意味着postgres的'(1 + 2)秒'失败,并且如果它是通过函数派生的“值部分”值,并且该函数的输出是一些整数,我不能在间隔中使用该函数,例如时间间隔func(args) seconds,如何在postgres db中为“时间间隔”实现这样的动态“值部分”?

postgresql intervals
2个回答
1
投票
对于这种“间隔构建”,make_interval()非常方便:

make_interval(secs => (1 + 2) * some_column);


0
投票
interval '(1+2) seconds'是无效的表达式。但是,interval '1 second' * 2有效。

因此,要获得与'(m+n) seconds'相等的值,通常将执行以下任一操作:

(interval '1 second' * m) + (interval '1 second' * n)

(m+n) * interval '1 second'

同样,如果有一个函数返回一个数值,而我们想要一个该幅度的间隔(以秒为单位),则可以使用以下内容:

func(args) * (interval '1 second')

© www.soinside.com 2019 - 2024. All rights reserved.