【问题标题】:Storing ISO 8601 duration in PostgreSQL在 PostgreSQL 中存储 ISO 8601 持续时间
【发布时间】:2019-11-07 21:24:41
【问题描述】:

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

【问题讨论】:

    标签: postgresql setinterval intervals duration iso8601


    【解决方案1】:

    谷歌搜索显示,有些人将 ISO 8601 持续时间存储为 VARCHAR。 PostgreSQL 虽然在其他date/time types 中有一个interval data type,它可以以iso_8601 格式存储和返回持续时间。例如,

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

    ISO 8601 格式的持续时间

    # SELECT duration FROM xyz;
     duration
    ----------
     PT0S
     PT1M28S
    (2 rows)
    

    interval的输出样式可以通过SET intervalstyle命令设置

    SET intervalstyle = 'iso_8601';
    

    【讨论】:

      猜你喜欢
      • 2014-07-16
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2010-11-11
      • 2015-01-25
      • 2021-05-21
      相关资源
      最近更新 更多