在PostgreSQL中存储ISO 8601持续时间

问题描述 投票:0回答:1

需要将持续时间以ISO 8601格式P[n]Y[n]M[n]DT[n]H[n]M[n]S存储在PostgreSQL中,然后以相同格式在脚本中进行检索。在PostgreSQL中以哪种数据类型存储ISO 8601持续时间?

postgresql setinterval intervals duration iso8601
1个回答
1
投票

[Google搜索显示,有些人将ISO 8601持续时间存储为VARCHAR。 PostgreSQL以及其他date/time types都有一个interval data type,它可以interval格式存储和返回持续时间。例如,

iso_8601

ISO 8601格式的持续时间

 CREATE TABLE xyz(
  id SERIAL PRIMARY KEY,
  duration INTERVAL
);

# SELECT duration FROM xyz; duration ---------- PT0S PT1M28S (2 rows) 的输出样式可以通过interval命令设置

SET intervalstyle
© www.soinside.com 2019 - 2024. All rights reserved.