Исключением, с которым мы столкнулись, было не на локальном, а на удаленном сервере, Azure CI читал его из папки пакетов, но упомянутые выше версии компилятора не были найдены.
Чтобы исправить это мы изменили файл проекта, чтобы сделать его чем-то вроде
. Он не ссылается ни на один из пакетов здесь, непосредственно ссылающийся на переменные среды.
Это исправило проблему, однако в наших случаях мы надеемся 't использовать пакеты непосредственно из "package.config", вместо этого у нас есть отдельная папка для поддержания целостности версий между командами.
Я предполагаю, что у Вас есть столбец, названный ct
, который имеет тип TIMESTAMPTZ
в таблице t
. Затем можно использовать:
SELECT EXTRACT(TIMEZONE FROM ct) FROM t;
для получения смещения часового пояса в секундах. Это, который дает Вам 3600
от UTC
/ GMT
, который означает любой GMT+1
, CET
или что бы то ни было. Возвращенное значение зависит от Вашего TIMEZONE
установка.
Образец (я живу в Германии, фактическом часовом поясе ist GMT+1
/ CET
):
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
timestamptz
------------------------
2008-01-01 18:00:00+01
test=# set timezone to 'gmt';
SET
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
timestamptz
------------------------
2008-01-01 17:00:00+00
, Как Вы видите, это всегда производит что-либо в настроенном часовом поясе. Так смещение Вы доберетесь с [1 113], зависит от Вашего TIMEZONE
установка. Часовой пояс, который был дан на [1 115], потерян, потому что это не стоит сохраняться. Вещь, которая количества - то, что все корректно и это не должно зависеть от TIMEZONE
установка. PostgreSQL делает это очень хорошо.
"PostgreSQL делает это очень хорошо".
Мне действительно нравится PostgreSQL, но в этой конкретной функции он не делает этого хорошо. Часовой пояс не только смещается к Часовому поясу GMT, трудно к политическим правилам, который подразумевает переход на летнее время. Как существует много часовых поясов с тем же смещением и различными правилами перехода на летнее время - когда PG забывает об исходном часовом поясе, она освобождает информацию на самом деле.
Лично я храню исходный часовой пояс отдельно для дат, он имеет значение в форме 'America/New_York'. Если у кого-либо есть лучшее решение - это приветствуется.
Так как timestampz записывается для момента времени в формате ZULU / GMT, который никогда не меняет его смещение (поскольку это ссылка), нет необходимости записывать часовой пояс. Вам нужно только добавить / вычесть смещение к смещению ГЕОПОЛИТИЧЕСКОГО часового пояса в ПРОШЛОЕ, НАСТОЯЩЕЕ или БУДУЩЕЕ.
Вам ДЕЙСТВИТЕЛЬНО необходимо знать точный ГЕОПОЛИТИЧЕСКИЙ ЧАСОВОЙ ПОЯС, действующий в том месте, к которому применяется время, в настоящий момент применяется для ПРОШЛОГО и НАСТОЯЩЕГО целей.
Для будущих случаев во времени это становится может быть, более проблематично. Однако он все равно должен работать. Подумайте о закате. Если в каком-то месте на Земле есть закат в полночь по времени ZULU (где-то над Атлантическим океаном или от Северной Канады до Аляски зимой в Северном полушарии), и это время предполагается равным 8 часам вечера (-4: 00 смещение) в этом месте в тот момент, когда вы записываете его в систему и записываете как «зима-дата-в-будущем 8:00 PM», оно будет записано в базе данных как 24:00 GMT.
Сейчас , это место на Земле вызывает недоумение и недоумевает при исчислении времени, связанном с географией, и называет свой часовой пояс - «+11: 55». Так что для них, когда в Англии полночь (полночь по Гринвичу), они ХОТЯТ назвать это 11:55 утра, полностью их выбор. Когда любой компьютер хочет отобразить эту дату в будущем для этого местоположения (то есть в этом геополитическом часовом поясе), он будет называть это 11:55 утра, даже если солнце садится. И конечно же, это БУДЕТ день ВПЕРЕД тем, как вы это запланировали :-) Их проблема.
00 GMT в базе данных.Так вот, это место на Земле встает дыбом и трясет носом при географическом исчислении времени и называет свой часовой пояс - «+11: 55». Так что для них, когда в Англии полночь (полночь по Гринвичу), они ХОТЯТ назвать это 11:55 утра, полностью их выбор. Когда любой компьютер хочет отобразить эту дату в будущем для этого местоположения (то есть в этом геополитическом часовом поясе), он будет называть это 11:55 утра, даже если солнце садится. И конечно же, это БУДЕТ день ВПЕРЕД тем, как вы это запланировали :-) Их проблема.
00 GMT в базе данных.Так вот, это место на Земле встает дыбом и трясет носом при географическом исчислении времени и называет свой часовой пояс - «+11: 55». Так что для них, когда в Англии полночь (полночь по Гринвичу), они ХОТЯТ назвать это 11:55 утра, полностью их выбор. Когда какой-либо компьютер хочет отобразить эту дату в будущем для этого местоположения (то есть этого геополитического часового пояса), он будет называть это 11:55 утра, даже если солнце садится. И конечно же, это БУДЕТ день ВПЕРЕД тем, как вы это запланировали :-) Их проблема.
Когда какой-либо компьютер хочет отобразить эту дату в будущем для этого местоположения (то есть этого геополитического часового пояса), он будет называть это 11:55 утра, даже если солнце садится. И конечно же, это БУДЕТ день ВПЕРЕД тем, как вы это запланировали :-) Их проблема. Когда любой компьютер хочет отобразить эту дату в будущем для этого местоположения (то есть в этом геополитическом часовом поясе), он будет называть это 11:55 утра, даже если солнце садится. И конечно же, это БУДЕТ день ВПЕРЕД тем, как вы это запланировали :-) Их проблема.