如何在 PostgreSQL 中调整 SET intervalstyle(更改间隔输出)?

How to tweak the SET intervalstyle (change the Interval Output) in PostgreSQL?

我已阅读此在线 PostgreSQL 文档...http://www.postgresql.org/docs/9.4/static/datatype-datetime.html#INTERVAL-STYLE-OUTPUT-TABLE 在第 8.5.5 节中介绍了如何调整默认间隔输出。 .我的意思是默认间隔是这样显示的...

00:00:00.000 (if the timedifference is lower than a day or month or year)

1 day 00:00:00.000 (if the timedifference reaches days, but is lower than a month or a year)

1 month 1 day 00:00:00.000 (if the timediffence reaches months, but is lower than a year)

1 year 1 month 1 day 00:00:00.000 (if it reaches years, months, days)

it evens uses plurarl cases (years, mons, days) when their values are greater than one.

选择(查询)此间隔值(作为文本)将其转换为适当的时间时,所有这些变化都使任何其他应用程序都困难。所以我希望 postgresql 始终显示年、月和日,即使它们的值为 0(如果它可以像这样显示间隔的日期部分会更好...01-11-30,将零添加到值小于十时的左侧)

我知道我可以使用 to_char() 将间隔更改为文本,但我真的很想避免这种情况,我希望一些优秀的 postgresql 程序员告诉我是否真的存在一种调整间隔输出的方法,如 postgresql 文档中所述。

感谢高级。

PD:关于该主题的另外两个链接 https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/SQLReferenceManual/Statements/SET/SETDATESTYLE.htm http://my.vertica.com/docs/6.1.x/HTML/index.htm#13874.htm

您可以设置间隔输出样式,但只能设置为输入明确的几种预定义格式之一,并且 PostgreSQL 知道如何解析回间隔。根据 the documentation,这些是 SQL 标准间隔格式、PostgreSQL 特定语法的两个变体和 iso_8601 间隔。

如果您想要熟悉且易于解析的内容,请考虑使用:

SET intervalstyle = 'iso_8601'

并为 ISO1601 间隔使用现成的解析器。