Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет99/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   95   96   97   98   99   100   101   102   ...   256
sql osnovi yazika

Глава 5. Основы языка определения данных
– местное время вылета, как плановое, так и фактическое
(scheduled_departure_local, actual_departure_local);
– местное время прибытия, как плановое, так и фактическое
(scheduled_arrival_local, actual_arrival_local);
– продолжительность полета, как плановая, так и фактическая
(scheduled_duration, actual_duration).
Мы только опишем все столбцы представления, а SQL-команду для его создания при-
ведем в главе 6.
Описание атрибута
Имя атрибута
Тип PostgreSQL
Идентификатор рейса
flight_id
integer
Номер рейса
flight_no
char(6)
Время вылета по расписанию
scheduled_departure
timestamptz
Время вылета по расписанию,
местное время в пункте отправления
scheduled_departure_local
timestamp
Время прилета по расписанию
scheduled_arrival
timestamptz
Время прилета по расписанию,
местное время в пункте прибытия
scheduled_arrival_local
timestamp
Планируемая продолжительность полета
scheduled_duration
interval
Код аэропорта отправления
departure_airport
char(3)
Название аэропорта отправления
departure_airport_name
text
Город отправления
departure_city
text
Код аэропорта прибытия
arrival_airport
char(3)
Название аэропорта прибытия
arrival_airport_name
text
Город прибытия
arrival_city
text
Статус рейса
status
varchar(20)
Код самолета, IATA
aircraft_code
char(3)
Фактическое время вылета
actual_departure
timestamptz
Фактическое время вылета,
местное время в пункте отправления
actual_departure_local
timestamp
Фактическое время прилета
actual_arrival
timestamptz
Фактическое время прилета,
местное время в пункте прибытия
actual_arrival_local
timestamp
Фактическая продолжительность полета
actual_duration
interval
Известно, что в сфере железнодорожных пассажирских перевозок время в расписа-
нии движения поездов и в билетах указывается московское. А в пассажирских авиа-
126


5.4. Представления
перевозках, напротив, время в билетах указывается местное. Это касается и времени
вылета и времени прилета. Если пункты отправления и назначения находятся в раз-
личных часовых поясах, то время вылета будет привязано к одному часовому поясу,
а время прилета — к другому.
Поэтому в нашем представлении «Рейсы» (flights_v) предусмотрены четыре столб-
ца, отображающие местное время: два из них относятся к пункту отправления —
scheduled_departure_local и actual_departure_local, а два других относят-
ся к пункту прибытия — scheduled_arrival_local и actual_arrival_local.
В качестве типа данных для этих четырех столбцов выбран тип timestamp without
time zone (сокращенно — просто timestamp), а не timestamp with time zone
(timestamptz). Причина в том, что при выборе timestamptz время автоматически
преобразовывалось бы при выводе данных к текущему часовому поясу, установлен-
ному на компьютере пользователя, а нам нужно сохранить его значения такими, ка-
кими они являются в пункте отправления и пункте назначения.
Для перевода значения типа timestamptz (с часовым поясом) в значение типа
timestamp (без часового пояса) служит конструкция AT TIME ZONE, подробно рас-
смотренная в разделе 9.9 «Операторы и функции даты/времени» документации. Так-
же существует и эквивалентная функция timezone, которая и используется здесь для
пересчета московского времени в местное.
Если вы испытываете затруднения с пониманием операций преобразования значе-
ний типа timestamptz в значения типа timestamp, рекомендуем вам обратиться к

Достарыңызбен бөлісу:
1   ...   95   96   97   98   99   100   101   102   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет