Эффективное хранение часов, минут и секунд - PullRequest
0 голосов
/ 09 декабря 2018

Использование базы данных PostgreSQL - лучший способ сохранить время в часах, минутах и ​​секундах.Например, «40:21» как в 40 минут и 21 секунда .

Пример данных:

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

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

time будет очевидным кандидатом на сохранение времени в том виде, как вы его описываете.Он обеспечивает диапазон дневного времени (00:00:00 до 24:00:00) и занимает 8 байт .
или time(0), чтобы запретить доли секунды.

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)
0 голосов
/ 09 декабря 2018

Звучит так, как будто вы хотите сохранить промежуток времени или интервал.PostgreSQL имеет специальный тип интервала для хранения промежутка времени, например,

SELECT interval'2 hours 3 minutes 20 seconds';

. Он может быть добавлен к временной метке, чтобы сформировать новую временную метку, или умножен (чтобы (2 * интервал 2 часа).') = интервал' 4 часа '. Кажется, что тип интервала специально разработан для вашего случая использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...