Читайте также:
|
|
Наряду со строками и числами довольно часто приходится работать с ин_ формацией о датах и/или времени. Этот тип данных называют времен_ ным (temporal). К примерам временных данных в базе данных относятся:
• Дата будущего события, например доставки заказа покупателю
• Фактическая дата доставки заказа покупателю
• Дата и время изменения пользователем определенной строки таб_ лицы
• Дата рождения сотрудника
• Год, соответствующий строке таблицы yearly_sales (продажи за год) в хранилище данных
Типы данных MySQL | |
• Время, необходимое для монтажа электропроводки в автомобиле на сборочном конвейере
В MySQL есть типы данных для обработки всех подобных ситуаций.
В табл. 2.4 показаны временные типы данных, поддерживаемые MySQL.
Таблица 2.4. Временные типы данных MySQL
Тип | Формат по умолчанию | Допустимые значения |
Date | YYYY_MM_DD | от 1000_01_01 до 9999_12_31 |
Datetime | YYYY_MM_DD HH:MI:SS | от 1000_01_01 00:00:00 до 9999_12_31 23:59:59 |
Timestamp | YYYY_MM_DD HH:MI:SS | от 1970_01_01 00:00:00 до 2037_12_31 23:59:59 |
Year | YYYY | от 1901 до 2155 |
Time | HHH:MI:SS | от _838:59:59 до 838:59:59 |
Серверы БД хранят временные данные по_разному, и назначение фор_ матирующей строки (второй столбец табл. 2.4) – показать, как будут представлены данные при извлечении, а также то, как должна быть сформирована строка даты при вставке или обновлении столбца вре_ менного типа. Таким образом, если бы вам понадобилось вставить дату 23 марта 2005 года в столбец date (дата) с форматом по умолчанию YYYY_ MM_DD, то вы бы использовали строку '2005_03_23'. Построение и отобра_ жение временных данных подробно рассмотрено в главе 7.
На всех серверах БД допустимы различные диапазоны дат для столбцов временного типа. Oracle Database допускает даты от 4712 г. до н. э. до 9999 г. н.э., тогда как SQL Server обрабатыва_ ет только даты от 1753 г. н. э. до 9999 г. н. э. Хотя для большин_ ства систем, отслеживающих текущие и будущие события, большой разницы здесь нет, об этом важно помнить при хране_ нии исторических дат.
Различные компоненты форматов даты, приведенных в табл. 2.4, опи_ саны в табл. 2.5.
Таблица 2.5. Компоненты формата даты
Компонент | Описание | Диапазон |
YYYY | Год, включая столетие | от 1000 до 9999 |
MM | Месяц | от 01 (январь) до 12 (декабрь) |
DD | День | от 01 до 31 |
HH | Час | от 01 до 24 |
HHH | Часы (прошедшие) | от _838 до 838 |
MI | Минута | от 01 до 60 |
SS | Секунда | от 01 до 60 |
36 Глава 2. Создание и заполнение базы данных
Вот как были бы использованы различные временные типы при реали_ зации приведенных выше примеров:
• Для хранения предполагаемой даты доставки заказа покупателю и даты рождения сотрудника использовались бы столбцы типа date, поскольку знать точное время рождения человека необязательно, а спланировать будущую доставку с точностью до секунды нереально.
• Для хранения информации о фактической доставке заказа покупа_ телю использовался бы тип datetime (дата и время), поскольку важ_ но отследить не только дату, но и точное время доставки.
• Столбец, отслеживающий время последнего изменения пользовате_ лем определенной строки таблицы, использовал бы тип timestamp (временная метка). Этот тип содержит ту же информацию, что и тип datetime (год, месяц, день, час, минуту, секунду), но при добавлении или изменении строки таблицы сервер MySQL автоматически за_ полнит столбец timestamp текущими значениями даты/времени.
• Столбец для хранения только данных о годе использовал бы тип year (год).
• Столбцы, содержащие данные о временном интервале, необходимом для выполнения задачи, использовали бы тип time (время). Этому
типу данных не нужно хранить компонент даты – это сбивало бы с толку, поскольку интерес представляет только количество часов/ минут/секунд, необходимое для выполнения задания. Эту информа_ цию можно было бы получить, найдя разность значений из двух столбцов типа datetime (первый хранит дату/время начала выполне_ ния задания, а второй – дату/время его завершения). Но проще ис_ пользовать один столбец time.
В главе 7 будет рассказано, как работать с каждым из этих временных типов данных.
Дата добавления: 2015-08-17; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Числовые данные | | | Создание таблиц |