Лучший способ хранения времени в базе данных MySQL?

Я хотел бы хранить некоторое количество времени для чего-то в базе данных mysql, в течение определенного времени, например, 2 часа, 5 минут, 10 секунд. точность до второго предпочтительна, но не требуется. Какой лучший способ сделать это?

Ответ 1

Тип MySQL TIME может хранить промежутки времени от '-838: 59: 59' до '838: 59: 59' - если это в пределах вашего требуемого диапазона, и было бы полезно, чтобы MySQL изначально представлял эти промежутки в форме HH: MM: SS, а затем использовал это.

В противном случае я бы просто пошел с целым типом, чтобы представить количество секунд.

Ответ 2

Мне нравится хранить вещи в базе данных в качестве базовых единиц. Таким образом, я могу надежно и точно преобразовать все, что захочу позже.

Единственное, что вам нужно беспокоиться по этому методу, - это снизить вашу точность. Если вы сохраняете расстояние, пройденное для поездок по пересеченной местности, дюймы или сантиметры могут быть не тем, что вы ищете.

В вашем случае я бы сохранил промежуток в секундах или миллисекундах и пошел оттуда.

Ответ 3

Как говорит Эндрю, целое поле с секундами может сделать уже.

Если данные доступны, и имеет смысл их сохранить, я бы сохранил данные в две временные метки mySQL со временем начала и окончания (также, возможно, отлично подходит для аудита позже) и используйте DATE_DIFF(), чтобы получить фактическую продолжительность.