Какое поле базы данных это должно быть? - PullRequest
1 голос
/ 02 апреля 2010

У меня есть таблица под названием «Событие». Столбец имеет «продолжительность» - то есть ... как долго длится это событие.

Какой тип базы данных это должно быть? Integer? (в секундах)?

В будущем я сделаю такие заявления, как:

If now() > event.duration  THEN don't display the event.

1 Ответ

0 голосов
/ 02 апреля 2010

В MySQL есть тип столбца с именем TIME, который можно использовать для хранения длительностей:

MySQL получает и отображает значения ВРЕМЕНИ в формате «ЧЧ: ММ: СС» (или в формате «ЧЧЧ: ММ: СС» для больших значений часов). Значения ВРЕМЕНИ могут находиться в диапазоне от -838: 59: 59 до 838: 59: 59. Часть часов может быть настолько большой, потому что тип ВРЕМЯ может использоваться не только для представления времени суток (которое должно быть меньше 24 часов), но также истекшего времени или промежутка времени между двумя событиями (который может быть намного больше, чем 24 часа, или даже отрицательный).

Обратите внимание, в частности, что ограничение составляет всего 839 часов, поэтому, если вам нужно больше, вы можете вместо этого использовать целочисленное поле.

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

SELECT * From Event WHERE Duration < '10:00:00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...