Документация MySQL

27.08.2008

,
,
являются родственными типами данных. В
данном разделе описаны их свойства, общие черты и различия.
используется для величин, содержащих информацию как о
дате, так и о времени. MySQL извлекает и выводит величины
. Поддерживается диапазон величин от
. (''поддерживается''
означает, что хотя величины с более ранними временными значениями,
возможно, тоже будут работать, но нет гарантии того, что они будут
правильно храниться и отображаться).
используется для величин с информацией только о дате, без части,
содержащей время. MySQL извлекает и выводит величины
. Поддерживается диапазон величин от
.
обеспечивает тип представления данных, который можно
использовать для автоматической записи текущих даты и времени при
выполнении операций
. При наличии нескольких столбцов
типа
только первый из них обновляется автоматически.
.
, и при этом изменяется
величина в некотором другом столбце (следует отметить, что команда
, устанавливающая столбец в то же самое значение, которое было
до выполнения команды, не вызовет обновления столбца
,
поскольку в целях повышения производительности MySQL игнорирует
подобные обновления при установке столбца в его текущее значение).
.
также можно задать
установку в значение текущих даты и времени. Для этого необходимо просто
установить столбец в
.
(даже первый столбец данного типа) можно
установить в значение, отличное от текущих даты и времени. Это делается
путем явной установки его в желаемое значение. Данное свойство можно
использовать, например, если необходимо установить столбец
в
значение текущих даты и времени при создании строки, а при последующем
обновлении этой строки значение столбца не должно изменяться:
при создании данной строки. Столбец будет установлен в исходное
состояние со значением текущих даты и времени.
в его текущее значение.
Однако, с другой стороны, для этих целей, возможно, будет проще
использовать столбец
. При создании строки его следует
инициализировать функцией
и оставить в покое при последующих
обновлениях.
году с разрешением в одну секунду. Эти величины
выводятся в виде числовых значений.
Формат данных, в котором MySQL извлекает и показывает величины
,
зависит от количества показываемых символов. Это проиллюстрировано в
приведенной ниже таблице. Полный формат
составляет 14 десятичных
разрядов, но можно создавать столбцы типа
Независимо от размера выводимого значения размер данных, хранящихся в
столбцах типа
, всегда один и тот же. Чаще всего используется
формат вывода с 6, 8, 12 или 14 десятичными знаками. При создании таблицы
можно указать произвольный размер выводимых значений, однако если этот
размер задать равным 0 или превышающим 14, то будет использоваться
значение 14. Нечетные значения размеров в интервале от 1 до 13 будут
приведены к ближайшему большему четному числу.
,
.
Допускается ''облегченный'' синтаксис - можно использовать
любой знак пунктуации в качестве разделительного между частями
разделов даты или времени. Например, величины
,
'98.12.31 11+30+45'
,
являются эквивалентными.
. Здесь
также допустим ''облегченный'' синтаксис. Например, величины
,
'98.12.31'
,
являются
эквивалентными.
, при условии, что строка понимается как дата.
Например, величины
, но величина
.
, при условии, что строка интерпретируется как дата.
Например, величины
, но величина
.
, при
условии, что число интерпретируется как дата. Например, величины
.
, при условии, что
число интерпретируется как дата. Например, величины
.
Как результат выполнения функции, возвращающей величину, приемлемую в
контекстах типов данных
,
(например,
функции
).
,
,
, или
).
Для величин, представленных как строки, содержащие разделительные знаки
между частями даты, нет необходимости указывать два разряда для значений
месяца или дня, меньших, чем
. Так, величина
. Аналогично, для величин, представленных как строки,
содержащие разделительные знаки внутри обозначения времени, нет
необходимости указывать два разряда для значений часов, минут или секунд,
меньших, чем
. Так,
Величины, определенные как числа, должны иметь
,
,
, или
десятичных
разрядов. Предполагается, что число, имеющее
разрядов,
представлено в форматах
соответственно, причем
год указан в первых четырех разрядах. Если же длина числа
разрядов, то предполагаются соответственно форматы
, где год указан в первых двух разрядах. Числа, длина которых
не соответствует ни одному из описанных вариантов, интерпретируются как
дополненные спереди нулями до ближайшей вышеуказанной длины.
Величины, представленные строками без разделительных знаков,
интерпретируются с учетом их длины согласно приведенным далее правилам.
Если длина строки равна
символам, то предполагается, что год
задан первыми четырьмя символами. В противном случае предполагается, что
год задан двумя первыми символами. Строка интерпретируется слева направо,
при этом определяются значения для года, месяца, дня, часов, минут и
секунд для всех представленных в строке разделов. Это означает, что строка
с длиной меньше, чем
символов, не может быть использована. Например,
если задать строку вида
, полагая, что это будет означать март 1999
года, то MySQL внесет в таблицу ''нулевую'' дату. Год и месяц в данной
записи равны
соответственно, но раздел, представляющий день,
пропущен (значение равно нулю), поэтому в целом данная величина не
является достоверным значением даты.
используется
полная точность, указанная при их задании, независимо от количества
выводимых символов. Это свойство имеет несколько следствий:
Необходимо всегда указывать год, месяц и день даже для типов
. В противном случае задаваемая величина
не будет допустимым значением даты и будет храниться как
.
будет выводиться ранее ''скрытая'' информация.
И аналогично, при сужении столбца
хранимая информация не
будет потеряна, если не принимать во внимание, что при выводе
информации будет выдаваться меньше.
хранятся с полной точностью, непосредственно
может работать с этим исходным хранимым значением величины только
функция
. Остальные функции оперируют форматированными
значениями извлеченной величины. Это означает, что нельзя использовать
такие функции, как
, пока соответствующая часть
величины
не будет включена в ее форматированное значение.
Например, раздел
не будет выводиться, пока
количество выводимых символов не станет по меньшей мере равным
, так
что попытки использовать
приведут к бессмысленным результатам.
Величины одного типа даты можно в ряде случаев присвоить объекту другого
типа даты. Однако при этом возможны некоторое изменение величины или
потеря информации:
, то в
результирующей величине ''временная'' часть будет установлена в
, так как величина
не содержит информации о времени.
,
, то ''временная'' часть в результирующей величине будет удалена,
так как тип
не включает информацию о времени.
,
могут быть
указаны с использованием одного и того же набора форматов, следует
помнить, что указанные типы имеют разные интервалы допустимых
значений. Например, величины типа
не могут иметь значения
даты более ранние, чем относящиеся к
году или более поздние, чем
относящиеся к
году. Это означает, что такая дата, как
, будучи разрешенной для величины типа
,
недопустима для величины типа
при
присвоении этому объекту.
Задавая величины даты, следует иметь в виду некоторые ''подводные камни'':
Упрощенный формат, который допускается для величин, заданных строками,
может ввести в заблуждение. Например, такая величина, как
,
благодаря разделителю
могла бы оказаться величиной времени, но,
используемая в контексте даты, она будет интерпретирована как год
. В то же время величина
, так как для месяца значение
недопустимо.
, месяцы
, года
. Любая дата вне этого диапазона
преобразуется в
. Следует отметить, что, тем не менее, при
этом не запрещается хранить неверные даты, такие как
. Это
позволяет веб-приложениям сохранять данные форм без дополнительной
проверки. Чтобы убедиться в достоверности даты, выполняется проверка в
самом приложении.
Величины года, представленные двумя разрядами, допускают неоднозначное
толкование, так как неизвестно столетие. MySQL интерпретирует
двухразрядные величины года по следующим правилам:
.
.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.