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, рекомендуем вам обратиться к
Достарыңызбен бөлісу: