2012-02-15 1 views
2

Я получаю фиды данных с нескольких разных серверов по всей стране, а элементы отправляются с отметкой времени с GMT. Я знаю смещение GMT ​​для каждого из мест в стандартное время, но я не уверен, какие местоположения поддерживают/наблюдают Daylight Time. Обычно я просто проверяю свое местное время, чтобы узнать, что такое смещение, а затем оттуда - я мог бы легко определить, наблюдается ли в настоящее время DST из-за текущего смещения от GMT) - за исключением того, что мой сервер находится в Аризоне, где DST не наблюдается. В результате я всегда GMT-7, независимо от того, активен ли DST.Определить текущий статус DST, когда я не наблюдаю DST в своем часовом поясе (SQL Server)

Есть ли простой способ определить, наблюдается ли DST, когда мой локальный сервер не меняет время? Я даже мог написать компонент .NET SQL-CLR, который проверяет что-то в системе, если мне нужно, хотя я бы идеально хотел сделать это непосредственно из кода T-SQL, если это возможно.

ответ

1

К сожалению, SQL Server не предоставляет явных флагов или функций DST.

Однако после того, как DST вступает в силу в этом году, вы можете скомпилировать новый список смещений для каждого сервера datediff(hh,getutcdate(),getdate()) и сравнить его с текущим списком стандартных временных задержек. Затем вы можете сделать вывод о соблюдении DST, где бы вы ни увидели изменения.

Надеюсь, это поможет!

+0

Я надеялся избежать этого, но это возможность - я знаю, откуда берутся каждый поток данных, поэтому я могу просто выбрать сервер в каждом часовом поясе и отслеживать его ответ на этот вопрос, а затем соответственно изменить значения даты и времени , Спасибо за ваше предложение. – SqlRyan

+0

Добро пожаловать. Я думаю, вам нужно будет проверить все серверы, поскольку соблюдение DST может варьироваться в пределах часового пояса, например. Индианаполис. –

+0

Проблема в том, что серверы SQL не являются тем, что отправляет потоки, и у меня нет SQL Server в том же городе, что и каждый источник. В лучшем случае это аппроксимация, поэтому я думаю, что, вероятно, буду хранить скорректированное время и предполагаемое смещение вместе с ним, поэтому, если смещение неверно по какой-то причине, я всегда могу легко изменить его позже. – SqlRyan

Смежные вопросы