Spec-Zone.ru › MySQL 8.4

13.2.3 Тип TIME

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

MySQL распознает значения TIME в нескольких форматах, некоторые из которых могут включать хвостовую дробную часть секунд с точностью до микросекунд (6 знаков). См. Раздел 11.1.3, «Литералы дат и времени». Сведения о поддержке дробных секунд в MySQL см. в Разделе 13.2.6, «Дробные секунды во временных значениях». В частности, любая дробная часть в значении, вставленном в столбец 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, чтобы возникали ошибки. См. Раздел 7.1.11, «Режим SQL сервера».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/time.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API