П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое







Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 97882 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 29008 раз(а).

Учебник HTML.
Просмотров 56134 раз(а).

Руководство по PHP5.
Просмотров 25896 раз(а).

Хостинг через призму DNS.
Просмотров 30411 раз(а).

Подборка текстов стандартных документов.
Просмотров 28914 раз(а).

Учебник PHP - Самоучитель
Просмотров 33630 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 34928 раз(а).

Внешние атаки...
Просмотров 26912 раз(а).

Учебник PHP.
Просмотров 22732 раз(а).

SSI в примерах.
Просмотров 17821 раз(а).



 
 



Глава 6. Справочник по языку MySQL
Пред.     След.

6.2. Типы данных столбцов
6.2.2. Типы данных даты и времени

6.2.2.1. Проблема 2000 года и типы данных
6.2.2.2. Типы данных DATETIME, DATE и TIMESTAMP
6.2.2.3. Тип данных TIME
6.2.2.4. Тип данных YEAR

Существуют следующие типы данных даты и времени: 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 дадут правильные значения).

Ниже приведены некоторые общие соображения, полезные при работе с типами данных даты и времени:

MySQL извлекает значения для данного типа даты или времени только в стандартном формате, но в то же время пытается интерпретировать разнообразные форматы, которые могут поступать от пользователей (например, когда задается величина, которой следует присвоить тип даты или времени или сравнить со значением, имеющим один из этих типов). Тем не менее, поддерживаются только форматы, описанные в следующих разделах. Предполагается, что пользователь будет вводить допустимые значения величин, так как использование величин в других форматах может дать непредсказуемые результаты.

  • Хотя MySQL пытается интерпретировать значения в нескольких форматах, во всех случаях ожидается, что крайним слева будет раздел значения даты, содержащий год. Даты должны задаваться в порядке год-месяц-день (например, '98-09-04'), а не в порядке месяц-день-год или день-месяц-год, т.е. не так, как мы их обычно записываем (например '09-04-98', '04-09-98').

  • MySQL автоматически преобразует значение, имеющее тип даты или времени, в число, если данная величина используется в числовом контексте, и наоборот.

  • Значение, имеющее тип даты или времени, которое выходит за границы установленного интервала или является недопустимым для этого типа данных (см. начало раздела), преобразуется в значение "ноль" для данного типа. (Исключение составляют выходящие за границы установленного интервала величины типа TIME, которые усекаются до соответствующей граничной точки заданного интервала TIME). В следующей таблице представлены форматы значения "ноль" для каждого из типов столбцов:

    Тип столбцаЗначение "Ноль"
    DATETIME'0000-00-00 00:00:00'
    DATE'0000-00-00'
    TIMESTAMP00000000000000 (длина зависит от количества выводимых символов)
    TIME'00:00:00'
    YEAR0000
  • Значения "ноль" - особые. Для их хранения или ссылок на них можно явно применять представленные в таблице значения, а можно использовать "0" или "0", что легче в написании.

  • Значения "ноль" даты или времени при использовании MyODBC автоматически конвертируются в NULL в версии MyODBC 2.50.12 и выше, так как ODBC не оперирует с подобными величинами.


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


 





Copyright © 2005-2011 Project.Net.Ru