140
Глава 7.
Создание, преобразование и работа с данными
Временные данные
Из трех типов данных, обсуждаемых в этой главе (символьные, число
вые и временные), временные данные – наиболее сложные с точки зре
ния создания и обработки. Сложность временных данных отчасти обу
словлена бесконечным множеством способов описания дат и времени.
Например, дату написания этого абзаца можно записать любым из сле
дующих способов:
•
суббота, 19 марта 2005
•
3/19/2005 2:14:56 P.M. EST
•
3/19/2005 19:14:56 GMT
•
0782005 (Юлианский формат)
•
Звездная дата [4] 82213.47 14:14:56 (формат фильма «Звездный
путь»)
Хотя некоторые записи отличаются только форматированием, основ
ная сложность заключается в
избранной системе отсчета, что рассмат
ривается в следующем разделе.
Часовые пояса
Поскольку всюду на планете люди считают полднем наивысшую точку
подъема солнца над горизонтом, никто и не пытался ввести одни уни
версальные часы на всех. Вместо этого мир был разделен на 24 вообра
жаемые секции, названные
часовыми поясами
(
time zones
). В
рамках
одного часового пояса все придерживаются текущего времени, а в дру
гом поясе люди живут по другому времени. Все выглядит достаточно
просто, но одни географические регионы переводят свое время на час
дважды в год (реализуя нак называемое
декретное время
(
Daylight Sa
vings Time
)), а другие – нет. Таким образом,
разница во времени между
двумя точками планеты может первые полгода составлять четыре часа,
а вторые – пять часов. Даже в рамках одного часового пояса одни ре
гионы могут принимать, а другие не принимать декретное время. По
этому в одном часовом поясе полгода время может совпадать, а полгода
отличаться на час.
Компьютерная эра обострила эту проблему,
хотя различия часовых
поясов известны со времен великих географических открытий. Чтобы
обеспечить общую точку отсчета для хронометрирования, мореплава
тели XV столетия устанавливали свои часы по Гринвичу (Англия). Это
время назвали
временем по Гринвичу
(
Greenwich Mean Time
), или
GMT. Все остальные часовые пояса можно описать разностью между
GMT и местным временем. Например, часовой пояс восточных штатов
Америки, известный как
восточное поясное время
(
Eastern Standard
Time
), можно описать как GMT5:00 (на пять часов раньше GMT).
Сегодня используется разновидность GMT –
универсальное глобальное
время
(
coordinated universal time
), или UTC,
отсчитываемое по атом
Временные данные
141
ным часам (или точнее среднее время 200 атомных часов, размещен
ных в 50 точках по всему миру, которое называют
всемирным временем
(
universal time
)). И SQL Server, и MySQL предоставляют функции, воз
вращающие текущее время UTC (
getutcdate()
для SQL Server и
utc_ti
mestamp()
для MySQL).
Большинство серверов БД по умолчанию
используют настройки часо
вого пояса сервера, на котором размещены, и предоставляют инстру
менты для изменения часового пояса в случае необходимости. Напри
мер БД, предназначенная для хранения фондовых операций со всего
света, обычно конфигурируется на использование времени UTC, тогда
как БД для хранения операций конкретного предприятия розничной
торговли может использовать часовой пояс сервера.
MySQL придерживается двух разных настроек часового пояса – гло
бальный часовой
пояс и сеансовый часовой пояс, который может отли
чаться для каждого зарегистрированного пользователя. Следующий
запрос позволяет увидеть обе настройки:
mysql>
Достарыңызбен бөлісу: