【问题标题】:Can't get element from array in second column PostgreSQL无法从第二列 PostgreSQL 的数组中获取元素
【发布时间】:2017-08-15 03:57:35
【问题描述】:

我将二维数组作为时间戳类型。然后我添加了这样的插入

'{{2017-03-01 14:00:00},{2017-06-01 21:00:00}}'

我怎样才能只获得第二个元素?

创建表:

create table client(id SERIAL PRIMARY KEY, full_name VARCHAR(40) NOT NULL, gender VARCHAR(15) NOT NULL, phone_number VARCHAR(20) NOT NULL, card_type VARCHAR(30) NOT NULL, card_period Timestamp[][] NOT NULL );

然后我做了一些插入如下:

insert into client (full_name, phone_number, card_type, card_period, gender) values('Mr James Abrams','3805832940003073','Bronze','{{2017-03-01 14:00:00},{2017-06-01 21:00:00}}','man');

例如当我选择某些东西时

select card_period from client where id = 1;

它的显示如下:2017-03-01T14:00:00,2017-06-01T21:00:00 我尝试选择 card_period[0:1] - 仅首先显示,如果 [0:2] 则同时显示它们

【问题讨论】:

  • 第一个是怎么得到的?显示数据库架构?你如何插入那个字符串?
  • 顺便说一句Range types

标签: sql arrays postgresql select


【解决方案1】:

SELECT column_name[1][2] FROM the_table

【讨论】:

  • 那么问题出在其他地方,因为这就是您访问一个数组的方式。我们需要更多信息。
  • 更新了我的问题
【解决方案2】:

前面已经给出的答案在格式上是正确的,只是数组顺序的数量是错误的:)

这是获得第二个元素值的方式:

SELECT card_period[2][1] FROM client WHERE id = 1;
     card_period
---------------------
 2017-06-01 21:00:00
(1 row)

【讨论】:

  • 哦,这太疯狂了 xD。谢谢
  • 太疯狂了,如果要添加两行,你使用什么 sintaxis?喜欢here
  • 如果您创建二维数组,恕我直言,语法并不疯狂,那么这是任何编程语言中读取一维元素然后读取二维元素的常用语法:)
猜你喜欢
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多