首页 > 解决方案 > 如何设置 intervalstyle = iso_8601 然后在 golang 中运行选择查询

问题描述

我有一个带有interval列的表,类似这样。

CREATE TABLE validity (
  window INTERVAL NOT NULL
);

假设存储的值是iso_8601格式的“P3DT1H”。当我尝试读取该值时,它以常规的 postgres 格式出现。

3 days 01:00:00

但是我想要iso_8601格式的值。我怎样才能实现它?

标签: sqlpostgresqlgopq

解决方案


so=# CREATE TABLE validity (
  w INTERVAL NOT NULL
);
CREATE TABLE
so=# insert into validity values ('3 days 01:00:00');
INSERT 0 1

你可能正在寻找 intervalstyle

so=# set intervalstyle to iso_8601;
SET
so=# select w From validity;
   w
--------
 P3DT1H
(1 row)

当然可以按事务/会话/角色/数据库/集群设置


推荐阅读