Лучший способ хранить промежуток времени в базе данных MySQL? - PullRequest
11 голосов
/ 06 октября 2010

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

Ответы [ 3 ]

17 голосов
/ 06 октября 2010

MySQL TIME может хранить интервалы времени от -838: 59: 59 до 838: 59: 59 - если это в требуемом диапазоне, и было бы полезно иметь MySQLизначально представьте эти промежутки в форме ЧЧ: ММ: СС, затем используйте их.

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

3 голосов
/ 06 октября 2010

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

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

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

1 голос
/ 06 октября 2010

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

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

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