Существуют следующие типы данных даты и времени: DATETIME
, DATE
,
TIMESTAMP
, TIME
и YEAR
. Каждый из них имеет интервал допустимых значений,
а также значение ``ноль'', которое используется, когда пользователь вводит
действительно недопустимое значение. Отметим, что MySQL позволяет хранить
некоторые не вполне достоверные значения даты, например 1999-11-31
.
Причина в том, что, по нашему мнению, управление проверкой даты входит в
обязанности конкретного приложения, а не SQL-серверов. Для ускорения
проверки правильности даты MySQL только проверяет, находится ли месяц в
интервале 0-12
и день в интервале 0-31
. Данные интервалы начинаются с 0
,
это сделано для того, чтобы обеспечить для MySQL возможность хранить в
столбцах DATE
или DATETIME
даты, в которых день или месяц равен нулю. Эта
возможность особенно полезна для приложений, которые предполагают хранение
даты рождения - здесь не всегда известен день или месяц рождения. В таких
случаях дата хранится просто в виде 1999-00-00
или 1999-01-00
(при этом не
следует рассчитывать на то, что для подобных дат функции DATE_SUB()
или
DATE_ADD
дадут правильные значения).
Ниже приведены некоторые общие соображения, полезные при работе с типами данных даты и времени:
год-месяц-день
(например, '98-09-04'
), а не в порядке месяц-день-год
или
день-месяц-год
, т.е. не так, как мы их обычно записываем (например
'09-04-98'
, '04-09-98'
).
TIME
, которые усекаются до
соответствующей граничной точки заданного интервала TIME
). В следующей
таблице представлены форматы значения ``ноль'' для каждого из типов
столбцов:
Тип столбца | Значение ``Ноль'' |
DATETIME | '0000-00-00 00:00:00'
|
DATE | '0000-00-00'
|
TIMESTAMP | 00000000000000 (длина зависит от количества выводимых символов)
|
TIME | '00:00:00'
|
YEAR | 0000
|
NULL
в версии MyODBC 2.50.12 и выше,
так как ODBC не оперирует с подобными величинами.
User Comments
Add your own comment.