Лучший способ хранить промежуток времени в базе данных MySQL?
=============================================================

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

MySQL[ВРЕМЯ](https://dev.mysql.com/doc/refman/5.1/en/time.html) type может хранить промежутки времени от '-838: 59: 59' до '838: 59: 59' - если это в требуемом диапазоне, и было бы полезно, чтобы MySQL изначально представлял эти промежутки в форме HH: MM: SS, тогда используйте это.

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



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

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

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



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

Если данные доступны, и их имеет смысл сохранить, я бы сохранил данные в двух метках времени MySQL с указанием времени начала и окончания (также, возможно, отлично подходит для последующего аудита), и использовал бы[`DATE_DIFF()`](https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timediff) чтобы получить фактическую продолжительность.