Навигация

Поиск по Сайту

Партнеры

Самоучитель. Книги.

Статистика

    Каталог@Mail.ru - каталог ресурсов интернет

Тип TIME в MySQL

Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Тип TIME в MySQL

MySQL получает и отображает значения TIME в формате HH:MM:SS (часы:минуты:секунды) или HHH:MM:SS для больших значений часов. Значения TIME могут располагаться в диапазоне от -838:59:59 до 838:59:59. Причина того, что значение часов может быть настолько большим, в том, что тип TIME может использоваться не только, чтобы представить время дня (которое должно быть меньше, чем 24 часа), но также и прошедшее время или интервал времени между двумя событиями (который может быть намного больше, чем 24 часа).

Вы можете определять значения TIME разными способами:

  • как строку в формате D HH:MM:SS.fraction. Обратите внимание, что MySQL все же не сохраняет дробную часть для столбца времени. Можно также использовать один из следующих ослабленных синтаксисов: HH:MM:SS.fraction, HH:MM:SS, НН:ММ, D HH:MM:SS, D HH:MM, D HH или SS. Здесь под D понимаются дни в пределах 0-33;
  • как строку без всяких разделителей в формате HHMMSS, при условии, что она имеет смысл как время. Например, 101112 допустимо и будет воспринято как 10:11:12, но вот 109712 из-за неправильной минутной части превратится в 00:00:00;
  • как число в формате HHMMSS, при условии, что оно имеет смысл как время. Например, 101112 допустимо и будет воспринято как 10:11:12. Следующие альтернативные форматы также будут прочитаны: SS, MMSS, HHMMSS, HHMMSS.fraction. Обратите внимание, что MySQL все же не сохраняет дррбную часть;
  • как результат функции, которая возвращает значение, которое является приемлемым в контексте TIME, например CURRENT_TIME.

Для значений TIME, определенных как строки, которые включают разделитель частей времени, необязательно задавать по две цифры для часов, минут или секунд, если значения меньше 10. Указание 8:3:2 аналогично 08:03:02.

Будьте внимательны относительно назначения коротких значений TIME. Без точки с запятой MySQL интерпретирует значения, используя предположение, что крайние справа цифры представляют секунды. MySQL интерпретирует значения TIME как прошедшее время, а не время дня. Например, вы могли задавать 1112 как 11:12:00, но MySQL поймет это как 00:11:12. Точно так же 12 интерпретируется как значение 00:00:12,

Значения TIME с точкой с запятой вместо этого, всегда обрабатываются как время дня. Так 11:12 будет интерпретироваться как 11:12:00, но уж точно не как 00:11:12.

Значения, которые находятся вне диапазона TIME, но допустимы во всем остальном, будут усечены до соответствующей границы диапазона. Например, - 850:00:00 и 850:00:00 превратятся в -838:59:59 и 838:59:59 соответственно.

Недопустимые значения TIME превратятся в 00:00:00. Обратите внимание, что так как 00:00:00 представляет собой самое что ни на есть допустимое значение для типа TIME, нет возможности понять по сохраненному в таблице значению 00:00:00, было ли первоначальное значение определено именно как 00:00:00 или нет.