11.2.3 Тип TIME
MySQL извлекает и отображает значения TIME в формате 'hh:mm:ss' (или в формате 'hhh:mm:ss' для значений больших часов). Значения TIME могут варьироваться от '-838:59:59' до '838:59:59'. Часть часов может быть такой большой, потому что тип TIME может использоваться не только для представления времени суток (которое должно быть меньше 24 часов), но и для представления прошедшего времени или временного интервала между двумя событиями (который может быть намного больше 24 часов или даже отрицательным).
MySQL распознает значения TIME в нескольких форматах, некоторые из которых могут включать фрагментарную часть секунд вплоть до микросекунд (6 цифр точности). См. Раздел 9.1.3, «Литералы дат и времени». Сведения о поддержке дробных секунд в MySQL см. в Разделе 11.2.7, «Дробные секунды в значениях времени». В частности, любая дробная часть в значении, вставленном в колонку TIME, сохраняется, а не отбрасывается. С включенной дробной частью диапазон значений TIME составляет от '-838:59:59.000000' до '838:59:59.000000'.
Будьте внимательны при присвоении сокращённых значений колонке TIME. MySQL интерпретирует сокращённые значения TIME с двоеточиями как время суток. То есть, '11:12' означает '11:12:00', а не '00:11:12'. MySQL интерпретирует сокращённые значения без двоеточий, предполагая, что две правые цифры представляют секунды (то есть, как прошедшее время, а не как время суток). Например, вы могли бы подумать, что '1112' и 1112 означают '11:12:00' (12 минут после 11 часов), но MySQL интерпретирует их как '00:11:12' (11 минут 12 секунд). Аналогично, '12' и 12 интерпретируются как '00:00: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' или оно было недопустимым.
Для более строгого обращения с недопустимыми значениями TIME включите строгий режим SQL, чтобы возникали ошибки. См. Раздел 5.1.10, «Режимы SQL сервера».
© 2025 Oracle
Licensed under the GPLv2 License.