如何将 PostgreSQL 时间戳数据类型插入时间戳数组

use*_*729 2 arrays postgresql sql-timestamp

我有一个包含时间戳数组的表,如下所示:

CREATE TABLE start_times
(
start_date timestamp[]
);
Run Code Online (Sandbox Code Playgroud)

我不确定如何将时间戳值插入到数组中。我在一篇文章中读到,在将时间戳插入数组时,我应该使用双引号而不是单引号,如下所示:

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

但是,当我尝试时,出现以下错误:

ERROR: invalid input syntax for type timestamp: "10-JAN-15 12.51.14.340358000 AM"
SQL state: 22007
Character: 165
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何将时间戳值插入时间戳数组吗?

a_h*_*ame 6

使用ARRAY关键字使您不必引用每个元素,允许根据需要使用单引号。使用 ANSI 时间戳文字也使它更容易:

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

无论当前的区域设置如何,这都将起作用。

  • 看起来答案不会被接受。就像一只标点符号错误的熊猫。他吃、射、然后离开。 (5认同)
  • @ user3439729:如果有效,请接受答案。 (2认同)