我有一个表,其中包含一个开始时间时间戳列和一个表示分钟的长度整数列。我希望能够做到这样的事情:
SELECT * FROM table t
WHERE t.start_time + interval 't.length minutes' < '2011-10-21';
但这不起作用。有没有办法从两列值中获取新的时间戳?
我正在运行postgresql的8.3版本
答案 0 :(得分:2)
SELECT *
FROM table
WHERE (start_time + interval '1 min' * length_minutes) < '2011-10-21 0:0'::timestamp;
integer
间隔1分钟,然后将其添加到timestamp
。timestamp
与timestamp
进行比较要快一些。 date
必须投放到timestamp
(自动)。答案 1 :(得分:1)
您需要将t.length
投射为character
然后追加它......试试这个吗?
SELECT *
FROM table t
WHERE
t.start_time
+ cast(cast(t.length as character varying) || ' minutes' as interval)
< '2011-10-21';