Я хотел бы хранить некоторое количество времени для чего-то в базе данных mysql, в течение определенного времени, например, 2 часа, 5 минут, 10 секунд. точность до второго предпочтительна, но не требуется. Какой лучший способ сделать это?
Лучший способ хранения времени в базе данных MySQL?
Ответ 1
Тип MySQL TIME может хранить промежутки времени от '-838: 59: 59' до '838: 59: 59' - если это в пределах вашего требуемого диапазона, и было бы полезно, чтобы MySQL изначально представлял эти промежутки в форме HH: MM: SS, а затем использовал это.
В противном случае я бы просто пошел с целым типом, чтобы представить количество секунд.
Ответ 2
Мне нравится хранить вещи в базе данных в качестве базовых единиц. Таким образом, я могу надежно и точно преобразовать все, что захочу позже.
Единственное, что вам нужно беспокоиться по этому методу, - это снизить вашу точность. Если вы сохраняете расстояние, пройденное для поездок по пересеченной местности, дюймы или сантиметры могут быть не тем, что вы ищете.
В вашем случае я бы сохранил промежуток в секундах или миллисекундах и пошел оттуда.
Ответ 3
Как говорит Эндрю, целое поле с секундами может сделать уже.
Если данные доступны, и имеет смысл их сохранить, я бы сохранил данные в две временные метки mySQL со временем начала и окончания (также, возможно, отлично подходит для аудита позже) и используйте DATE_DIFF()
, чтобы получить фактическую продолжительность.