在PostgresSQL中为日期添加天数

时间:2019-11-13 19:29:16

标签: sql postgresql

我需要在栏中添加天数。下面是我需要修改的代码:

DATE_TRUNC('day', a.targetdeliverydateforcalc) + COALESCE(a.to_transit_time_amount, 0) + 2

我尝试了这个(以及类似的变体):

DATE_TRUNC('day', a.targetdeliverydateforcalc) + INTERVAL ||COALESCE(a.to_transit_time_amount, 0) + 2 || 'day')

3 个答案:

答案 0 :(得分:0)

我通常这样表示:

(DATE_TRUNC('day', a.targetdeliverydateforcalc) + 
 (COALESCE(a.to_transit_time_amount, 0) + 2) * INTERVAL '1 DAY'
)

答案 1 :(得分:0)

有两种方法可以解决此问题。计算天数然后转换为间隔:

DATE_TRUNC('day', a.targetdeliverydateforcalc)::date + (COALESCE(a.to_transit_time_amount, 0) + 2)*interval '1 day'

或计算天数,然后添加结果整数:

DATE_TRUNC('day', a.targetdeliverydateforcalc)::date + (COALESCE(a.to_transit_time_amount, 0) + 2)

答案 2 :(得分:0)

您还可以使用make_interval()函数:

DATE_TRUNC('day', a.targetdeliverydateforcalc)
    + make_interval(days => COALESCE(a.to_transit_time_amount, 0) + 2)