Запрос с использованием двух значений столбца для создания диапазона - PullRequest
0 голосов
/ 22 октября 2011

У меня есть таблица со столбцом метки времени начала и целочисленным столбцом длины, представляющим минуты. Я хочу иметь возможность сделать что-то вроде этого:

SELECT * FROM table t 
    WHERE t.start_time + interval 't.length minutes' < '2011-10-21';

Но это не работает. Есть ли способ получить новую метку времени из двух значений столбца?

Я использую версию 8.3 postgresql

Ответы [ 2 ]

2 голосов
/ 22 октября 2011
SELECT *
FROM   table 
WHERE  (start_time + interval '1 min' * length_minutes) < '2011-10-21 0:0'::timestamp;

Примечания

  • Просто умножьте ваш integer с интервалом в 1 минуту и ​​добавьте его к timestamp.
  • Это немного быстрее для сравненияОт 1009 * до timestamp.date должен быть приведен к timestamp (автоматически).
1 голос
/ 22 октября 2011

Вам нужно разыграть t.length как character, а затем добавить его ... попробуйте вместо этого?

SELECT * 
FROM table t 
WHERE 
    t.start_time 
    + cast(cast(t.length as character varying) || ' minutes' as interval) 
    < '2011-10-21';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...