Как вставить тип данных временной метки 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

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


person user3439729    schedule 14.10.2015    source источник


Ответы (1)


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

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

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

person a_horse_with_no_name    schedule 14.10.2015
comment
Спасибо за пример и объяснение. Это сработало отлично. - person user3439729; 14.10.2015
comment
@ user3439729: если это сработало, примите ответ. - person Christian; 14.10.2015
comment
Не похоже, что ответ будет принят. Это как панда с плохой пунктуацией. Он ест, стреляет и уходит. - person Jamie; 14.04.2017