2015-10-14 4 views
1

У меня есть таблица, содержащая массив меток времени, как следующее:Как вставить метку времени тип данных PostgreSQL в массив меток времени

CREATE TABLE start_times 
(
start_date timestamp[] 
); 

Я не знаю, как вставить значения временной метки в массив. Я прочитал в статье, что я должен использовать двойные кавычки вместо одинарных кавычек при вставке метки в массив, как, например:

INSERT INTO start_times VALUES (ROW('{{"10-JAN-15 12.51.14.340358000 AM"},{"11-JAN-15 12.51.14.340358000 AM"}}')); 

Однако, когда я пытался, что я получил следующее сообщение об ошибке:

ERROR: invalid input syntax for type timestamp: "10-JAN-15 12.51.14.340358000 AM" 
SQL state: 22007 
Character: 165 

Может ли кто-нибудь сказать мне, как я могу вставлять значения метки времени в массив метки времени?

ответ

1

Использование ключевого слова ARRAY освобождает вас от необходимости цитировать каждый элемент, позволяя при необходимости использовать одинарные кавычки. А с помощью ANSI временных меток литералов делает его намного проще, а также:

INSERT INTO start_times 
VALUES 
(array[timestamp '2015-01-10 00:51:14', timestamp '2015-01-11 00:51:14']); 

Это будет работать, независимо от текущих настроек локали.

+0

Спасибо за пример и пояснения. Это сработало отлично. – user3439729

+2

@ user3439729: если это сработало, примите тогда ответ. – Christian

+0

Не похоже, что ответ будет принят. Это как панда с плохими пунктуациями. Он ест, стреляет и уходит. – Jamie