MySQL, хранящий время длительности-тип данных?

Мне нужно рассчитать время, которое пользователь проводит на сайте. Это разница между временем выхода из системы и временем входа в систему, чтобы дать мне что-то вроде "Mr X провел 4 часа и 43 минуты в интернете". Поэтому, чтобы сохранить 4 часа и 43 минуты, я объявил это так: duration время не NULL

это действительно или лучший способ сохранить это? Мне нужно хранить в БД, потому что у меня есть другие вычисления, которые мне нужно использовать для + других случаев использования.

2 ответов


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

  • на UPDATE будет чистым и простым, т. е. duration = duration + $increment
  • как заметил Тристрам, есть ограничения С помощью TIME поле - например,"TIME значения могут варьироваться от '-838:59:59' до '838:59:59'"
  • форматирование отображения дней/часов/минут/секунд не будет жестко закодировано.
  • исполнение другие расчеты будет почти наверняка будет понятнее при работе с целочисленным полем "количество секунд".

Я бы не использовал время, так как вы были бы ограничены 24 часами. Проще всего хранить целое число в минутах (или секундах в зависимости от необходимого разрешения).