2015-09-09 8 views
0

Как объединить эти два столбца и добавить к нему целое число 7? В постгресах.Postgres Concate: Date + Timestamp + Integer из 7

Оба столбца находятся в таблице a_event. start_time - это временная метка без типа данных часового пояса. start_date - тип данных даты.

до сих пор у меня есть:

SELECT start_time || start_date AS start_date_time 
FROM a_event; 

Это работает, но он показывает: 2015-03-06 21: 17: 162015-02-06

Как я могу получить его, чтобы просто показать: 2015-03-06 13:17:16 с добавленными 7 днями так: 2015-03-13 в желаемом результате.

+2

Какой тип данных «start_time» и «start_date» и почему вы не храните его в одном столбце «timestamp»? –

+1

Пожалуйста, вы можете [изменить] вопрос, чтобы дать нам полный пример с вводом и выводом. Возможно, добавьте его и на http://sqlfiddle.com. Трудно сказать, почему вы получаете вывод, который вы делаете, ничего не зная о вводе. – IMSoP

+1

'start_time + interval '7' day' или просто' start_time + 7' –

ответ

0

Оператор || объединяет две строки, поэтому столбцы «start_time» и «start_date» преобразуются в text, а затем конкатенируются, чтобы дать результат, который вы видите.

Вы хотите добавить 7 дней к стартовой даты. Это просто:

SELECT start_date + 7 AS start_date_time 
FROM a_event; 

Об одном типе date данных оператор + добавляет несколько дней.

Если вы хотите сохранить информацию о времени пуска, решение немного сложнее:

SELECT start_time + interval '7 days' AS start_date_time 
FROM a_event; 

Записи timestamp типа данных микросекунд, так как 01.01.1970, так что вы должны явно указать, что вы хотите для добавления интервала в 7 дней (а не 7 микросекунд).