Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 有效存储小时、分钟和秒_Postgresql_Time_Types - Fatal编程技术网

Postgresql 有效存储小时、分钟和秒

Postgresql 有效存储小时、分钟和秒,postgresql,time,types,Postgresql,Time,Types,使用PostgreSQL数据库,以小时、分钟和秒为单位存储时间的最佳方式是什么。例如,40分21秒中的“40:21” 示例数据: 20:21 1:20:02 12:20:02 40:21 听起来像是要存储一段时间或间隔。PostgreSQL有一个特殊的间隔类型来存储时间长度,例如 SELECT interval'2 hours 3 minutes 20 seconds'; 可以将其添加到时间戳中以形成新的时间戳,也可以将其相乘(以便(2*interval'2 hours')=i

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

示例数据:

   20:21
 1:20:02
12:20:02
   40:21

听起来像是要存储一段时间或间隔。PostgreSQL有一个特殊的间隔类型来存储时间长度,例如

SELECT interval'2 hours 3 minutes 20 seconds';
可以将其添加到时间戳中以形成新的时间戳,也可以将其相乘(以便(2*interval'2 hours')=interval'4 hours)。interval类型似乎是为您的用例量身定制的。

显然可以按照您的描述来存储时间。它强制执行每日时间的范围(
00:00:00
24:00:00
)并占用8个字节

间隔
允许任意间隔,甚至是负间隔,甚至是正负间隔的混合,如
'1个月-3秒'
-不符合您的描述-占用16个字节。请参阅:

要优化存储大小,请将其设置为表示秒的整数(4字节)。要来回转换时间,请执行以下操作:

SELECT EXTRACT(epoch FROM time '18:55:28');  -- 68128 (int)    
SELECT time '00:00:01' * 68128;              -- '18:55:28' (time)
可能重复的