Buy this Reference Manual in softcover from Barnes & Noble!
TIME
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'
или является преобразованным значением недопустимой величины.
Posted by Bastiaan Peters on Friday May 17 2002, @6:24am | [Delete] [Edit] |
Maybe it's nice to know that only the first
occurance of a TIMESTAMP column gets set to
'now()' when a row is changed. So your
second, third, fourth and so on column of the
type TIMESTAMP is NOT updated to current
date/time when a row is altered. This could
come in handy if you want to use the
(convenient) TIMESTAMP-type for something
else than modification-moment-registration.
Peace!
Posted by on Wednesday December 18 2002, @5:28pm | [Delete] [Edit] |
A first reading of this page makes me seriously
worried about the implied lack of design.
Knowning just how dangerous bad date parsing can
be the ability to
Add your own comment.