我有约会,有些日子我需要添加它。我有一个带有值的双变量,例如27,如何将它添加到我当前的日期?
答案 0 :(得分:2)
Use datemath with the interval type...
test=# SELECT now() + interval '27 days';
?column?
-------------------------------
2017-05-10 03:44:44.807499-05
(1 row)
如果27是int,numeric或double精度,请使用make_interval
(如果需要,转换为int)
SELECT now() + make_interval(0,0,0,27);
SELECT now() + make_interval(0,0,0,yourcol::int);
这是签名
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)
@Pozs提出了一个有效点
像这样的铸造可能会导致严重的精度损失(即值为27.9) - 另一方面,乘法可能更符合OP的需求(f.ex.27.9 *间隔'1天')。这里也存在一些舍入误差,但影响要小得多。 - pozs
我认为没有分数天。如果你有可以使用这种方法,他提到要做这项工作。
SELECT now() + yourcol * interval '1 day';