Поиск

Тип TIME

MySQL извлекает и отображает значения TIME в формате 'ЧЧ:ММ:СС (или 'ЧЧЧ:ММ:СС для больших значений). Значения типа TIME могут изменяться в пределах от •-838:59:59' до '838:59:59'. Причина того, что значение часов может быть насколько большим, состоит в том, что тип TIME может использоваться не только для представления текущего времени (которое не может быть больше 24), но также для того, чтоб хранить зна­чение времени, прошедшего с какого-то момента или временного интервала между двумя событиями (которые могут быть больше 24 часов и даже могут быть отрицательными).
Значение TIME можно специфицировать в различных форматах:

  1. Как строку в формате 'Д ЧЧ:ММ:СС.дробная_часть'. Вы можете также пользоваться ослабленным синтаксисом: 'ЧЧ:ММ:СС.дробная_часть', 'ЧЧ:ММ:СС, 'ЧЧ:ММ', 'Д ЧЧ:ММ:СС\ 'Д ЧЧ:ММ', 'Д ЧЧ1 и 'СС'. Здесь Д представляет дни, значения которых могут быть от 0 до 34. Помните, что MySQL не хранит дробную часть.
  2. Как строку без разделителей в формате 'HhmmSS1, в предположении, что она содержит корректное время. Например, '101112' понимается как '10:11:12', но '109712' - неверное значение (бессмысленная величина минут) и обращается в

'00:00:00'.

  1. Как число формата HHMMSS, в предположении, что оно содержит корректное время. Например, 101112 понимается как '10:11:12'. Следующие альтернативные форматы также допускаются: СС, ММСС, ЧЧММСС, ЧЧММСС.дробная_часть. Но помните, что MySQL не хранит дробную часть.
  2. Как результат функции, которая возвращает значение, приемлемое в контексте TIME, например, CURRENT _TIME.

Для значений TIME, заданных в виде строки, включающей разделитель частей време­ни, нет необходимости указывать два разряда для часов, минут и секунд, чье значение меньше 10. '8:3:2' -это то же самое, что и '08:03:02'.
Будьте осторожны, присваивая короткие значения TIME столбцам типа TIME. Без двоеточий MySQL интерпретирует значения в предположении, что крайние правые раз­ряды представляют секунды. (MySQL интерпретирует значения TIME как периоды вре­мени, а не время дня.) Например, вы можете подразумевать под '1112' и 1112 значение '11:12:00' (двенадцать минут двенадцатого), но MySQL интерпретирует это как '00:11:12' (11 минут 12 секунд). Подобным образом '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' - было ли оно явно указано таким при сохранении, или же получилось в результате попытки записать некорректное значение.