有效存储时、分、秒

doe*_*boy 4 postgresql time types

使用 PostgreSQL 数据库,存储时间(以小时、分钟和秒为单位)的最佳方式是什么。例如“40:21”表示40 分 21 秒

示例数据:

   20:21
 1:20:02
12:20:02
   40:21
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 5

time正如您所描述的那样,将是存储时间的明显候选者。它强制规定每天的时间范围( 00:00:00to 24:00:00),占用8 个字节

interval允许任意间隔,甚至是负间隔,甚至是正负间隔的混合,例如'1 month - 3 seconds'- 不太适合您的描述 - 并且占用16 个字节。看:

要优化存储大小,请将其设置为表示秒的integer4 字节)。time来回转换:

SELECT EXTRACT(epoch FROM time '18:55:28');  -- 68128 (int)    
SELECT time '00:00:01' * 68128;              -- '18:55:28' (time)
Run Code Online (Sandbox Code Playgroud)