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)
time正如您所描述的那样,将是存储时间的明显候选者。它强制规定每天的时间范围( 00:00:00to 24:00:00),占用8 个字节。
interval允许任意间隔,甚至是负间隔,甚至是正负间隔的混合,例如'1 month - 3 seconds'- 不太适合您的描述 - 并且占用16 个字节。看:
要优化存储大小,请将其设置为表示秒的integer(4 字节)。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)