MySQL извлекает и выводит величины
типа TIME в формате
'HH:MM:SS' (или в формате
'HHH:MM:SS' для больших
значений часов). Величины
TIME могут изменяться в
пределах от '-838:59:59' до
'838:59:59'. Причина того,
что ``часовая'' часть величины
может быть настолько большой,
заключается в том, что тип
TIME может
использоваться не только для
представления времени дня
(которое должно быть меньше 24
часов), но также для представления
общего истекшего времени или
временного интервала между двумя
событиями (который может быть
значительно больше 24 часов или
даже отрицательным).
Величины TIME могут быть
заданы в различных форматах:
Как строка в формате 'D
HH:MM:SS.дробная часть'
(следует учитывать, что MySQL пока
не обеспечивает хранения
дробной части величины в столбце
рассматриваемого типа). Можно
также использовать одно из
следующих ``облегченных''
представлений: HH:MM:SS.дробная
часть, HH:MM:SS,
HH:MM, 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'. MySQL понимает и
следующие альтернативные
форматы: SS,
MMSS, HHMMSS,
HHMMSS.дробная часть.
При этом следует учитывать, что
хранения дробной части MySQL пока
не обеспечивает.
Как результат выполнения
функции, возвращающей величину,
приемлемую в контексте типа
данных типа TIME
(например, такой функции, как
CURRENT_TIME).
Для величин типа TIME,
представленных как строки,
содержащие разделительные знаки
между частями значения времени,
нет необходимости указывать два
разряда для значений часов, минут
или секунд, меньших 10.
Так, величина '8:3:2'
эквивалентна величине
'08:03:02'.
Будьте внимательны в отношении
использования ``укороченных''
величин TIME в столбце
типа TIME. MySQL
интерпретирует выражения без
разделительных двоеточий исходя
из предположения, что крайние
справа разряды представляют
секунды (MySQL интерпретирует
величины TIME как общее
истекшее время, а не как время
дня). Например, можно
подразумевать, что величины
'1112' и 1112
обозначают '11:12:00' (11
часов и 12 минут дня по показаниям
часов), но 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'
невозможно определить, была ли
эта величина изначально задана
как '00:00:00' или является
преобразованным значением
недопустимой величины.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
