2009-08-11 3 views
0

Как написать запрос, чтобы найти разницу во времени?pgsql время diffrence?

формат времени, как этот 2009-08-12 2:59:59

я хочу, чтобы сравнить на этот раз с

2009-08-12 2:59:10

как проверить эти два

я хочу, чтобы вернуть некоторую строку, имеющую разницу во времени составляет 30сек

Как написать инструкцию SQL?

ответ

2
select date_part('second',date1) - date_part('second',date2) 

в SQL вы можете сделать так, которые дают вам выход в секундах

+1

Я думаю, что он не работает хорошо, поскольку он работает только в ту же минуту. Предложение вернет 0, если вы сравните 2009-08-12 02:59:59 и 2012-10-08 12:13:59 –

1
SELECT * FROM your_table WHERE time1_column - time2_column = interval '30s' 

К сожалению, это лучшее, что я могу сделать, учитывая ваше описание проблемы ...

+0

Я считаю, что вам потребуется разрешить интервал «-30s» также в случае, когда time2_column больше, чем time1_column. – Paul

0

если оба раза столбцы в таблице базы данных, можно непосредственно использовать реляционные операторы (>, < и =) Пример. если у вас есть таблица, подобная Тест ( id bigint, дата начала, конечная метка времени );

, то вы можете иметь запросы, как выберите * из теста, где время_запуска> время окончания и т.д ..

Если вы хотите сравнить две даты в запросе, вы можете сначала преобразовать текст времени, а затем сравнить их вы можете использовать: DATETIME функцию PgSQL см: http://www.postgresql.org/docs/6.3/static/c10.htm для более подробной информации

Смежные вопросы